19 个版本
0.0.19 | 2024年3月24日 |
---|---|
0.0.17 | 2023年9月23日 |
0.0.16 | 2023年3月19日 |
0.0.12 | 2022年11月23日 |
0.0.1 | 2021年11月28日 |
#815 in Web编程
160KB
2.5K SLoC
在您的 Cargo.toml
[dependencies]
varnish = "0.0.16"
varnish-rs
Varnish 绑定,特别是用于构建 vmod,例如
- vmod-reqwest:从 VCL 发出 HTTP 请求,使用动态、HTTPS 后端(支持 HTTP2)
- vmod-rers:支持动态正则表达式,包括响应体操作
- vmod-fileserver:直接从磁盘提供文件,无需 HTTP 后端
如果有什么不清楚或不切实际的地方,请勿犹豫,在github上提出问题。您也可以加入我们的 discord。
要求
Rust
varnish-rs
在稳定版 Rust 上运行,并且应该也能与较新版本兼容。如果不兼容,请提出问题。
Varnish
varnish-rs
依赖于 varnish-sys
(在这个相同的仓库中),从 libvarnish
头文件生成绑定。您需要根据您的 Linux 发行版安装它,相关软件包可能被命名为 varnish-devel
、varnish-dev
或可能是 libvarnish-dev
。
目前,支持的唯一 Varnish 版本是 7.*
。
Python3
目前,我们使用一个嵌入式的 python 脚本 来生成暴露 Rust vmod 代码到 Varnish 的样板代码。确保 python3
在您的路径中,或者确保 PYTHON
环境变量指向一个兼容的解释器。
构建
git clone https://github.com/gquintard/varnish-rs.git
cd varnish-rs
cargo build
如果您的 varnish
头文件安装的位置可以被 pkg-config
找到,那就全部解决了。如果找不到,您可以将 VARNISH_INCLUDE_PATHS
环境变量设置为一个冒号分隔的路径列表以进行搜索
VARNISH_INCLUDE_PATHS=/my/custom/libpath:/my/other/custom/libpath cargo build
版本
varnish-rs
和 varnish-sys
版本将协同工作:要构建 varnish
的版本 X,您需要 varnish-rs
和 varnish-sys
的版本 X,然后 varnish-sys
将依赖于特定的 Varnish C 库版本
varnish-rs/varnish-sys (rust) | libvarnish (C) |
---|---|
0.0.18 -> 0.0.19 | 7.5 |
0.0.17 | 7.4 |
0.0.15 -> 0.0.16 | 7.3 |
0.0.12 -> 0.0.14 | 7.2 |
0.0.9 -> 0.0.11 | 7.1 |
0.0.* | 7.0 |
您可以使用 libvarnish
元数据字段检查所需的 Varnish 版本,该字段位于 varnish-sys
cargo metadata --format-version 1 | jq -r '.packages[] | select(.name == "varnish-sys") | .metadata.libvarnishapi.version '
依赖项
~0.4–2.8MB
~58K SLoC