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服务器

Download history 156/week @ 2024-04-15 209/week @ 2024-04-22 83/week @ 2024-04-29 106/week @ 2024-05-06 257/week @ 2024-05-13 64/week @ 2024-05-20 132/week @ 2024-05-27 240/week @ 2024-06-03 157/week @ 2024-06-10 168/week @ 2024-06-17 170/week @ 2024-06-24 89/week @ 2024-07-01 110/week @ 2024-07-08 76/week @ 2024-07-15 66/week @ 2024-07-22 107/week @ 2024-07-29

每月360次下载

BlueOak-1.0.0

59KB
1K SLoC

tide-compress on crates.io Documentation (latest release)

tide-compress

Tide服务器框架的输出体压缩中间件。

#[async_std::main]
async fn main() {
    let mut app = tide::new();
    app.with(tide_compress::CompressMiddleware::new());
}

特性

  • 支持BrotliGzipDeflate编码,通过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