19个版本 (10个重大更改)
0.11.0 | 2023年1月16日 |
---|---|
0.10.6 | 2022年7月31日 |
0.10.3 | 2022年6月29日 |
0.9.0 | 2021年1月29日 |
0.4.0 | 2020年7月19日 |
#1044 in HTTP服务器
每月360次下载
59KB
1K SLoC
tide-compress
Tide服务器框架的输出体压缩中间件。
#[async_std::main]
async fn main() {
let mut app = tide::new();
app.with(tide_compress::CompressMiddleware::new());
}
特性
- 支持Brotli、Gzip和Deflate编码,通过Cargo功能标志在编译时配置。
- 如果可用,优先使用Brotli。
- 仅引入所需配置的依赖项。
- 默认为Brotli & Gzip。
- 还处理按照RFC 9110的“identity”编码指令。
Accept-Encoding
头检查,包括优先级。- 最小体大小阈值(默认:1024字节,可配置)。
- 不压缩带有
Cache-Control: no-transform
头的响应。 - 设置
Vary
头。 - 检查
Content-Type
头(MIME)。- 与jshttp的全面数据库进行对比,该数据库编译为完美哈希函数。
- 可以在crate的仓库中通过运行
cargo run generate-database
来重新生成数据库。 - 如果不在数据库中,则使用正则表达式进行对比。
- 默认值:
^text/|\+(?:json|text|xml)$
(不区分大小写)。 - 可以完全覆盖为任何自定义的
Regex
,其中None
作为一个选项。
- 默认值:
- 如果
regex
包在构建过程中出现问题,则可以在crate功能中排除该功能。
许可证
在BlueOak模型许可证1.0.0下授权 — 通过DCO 1.1贡献
依赖关系
~10–22MB
~356K SLoC