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编程

BSD-3-Clause

160KB
2.5K SLoC

crates.io tests docs.rs

文档

在您的 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-develvarnish-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-rsvarnish-sys 版本将协同工作:要构建 varnish 的版本 X,您需要 varnish-rsvarnish-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