tower-rs/tower-http

GitHub: tower-rs/tower-http

Tower-HTTP 是 Rust 生态中的 HTTP 中间件库,用于增强客户端和服务器的日志、压缩及重定向功能。

Stars: 877 | Forks: 221

# Tower HTTP 用于 HTTP 客户端和服务器的 Tower 中间件与工具集。 [![构建状态](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/6763566aff100100.svg)](https://github.com/tower-rs/tower-http/actions) [![Crates.io](https://img.shields.io/crates/v/tower-http)](https://crates.io/crates/tower-http) [![文档](https://docs.rs/tower-http/badge.svg)](https://docs.rs/tower-http) [![Crates.io](https://img.shields.io/crates/l/tower-http)](tower-http/LICENSE) 关于此 crate 的更多信息可以在 [crate 文档][docs] 中找到。 ## 中间件 Tower HTTP 包含了大量通常在构建 HTTP 服务器和客户端时非常有用的中间件。一些亮点包括: - `Trace` 添加了请求和响应的高级日志记录。支持常规 HTTP 请求和 gRPC。 - `Compression` 和 `Decompression` 用于压缩/解压缩响应体。 - `FollowRedirect` 用于自动跟随重定向响应。 完整的中间件列表请参阅 [文档][docs]。 这些中间件使用 [http] crate 作为 HTTP 接口,因此它们与任何同样使用 [http] 的库或框架兼容,例如 [hyper]。 这些中间件最初是从 [@EmbarkStudios] 的一个内部项目中提取出来的。 ## 示例 [示例][examples] 文件夹包含了各种使用 Tower HTTP 的示例: - [warp-key-value-store]:一个使用 warp 构建的、带有 HTTP API 的键/值存储。 - [tonic-key-value-store]:一个使用 tonic 构建的、带有 gRPC API 和客户端的键/值存储。 - [axum-key-value-store]:一个使用 axum 构建的、带有 HTTP API 的键/值存储。 ## 最低支持的 Rust 版本 tower-http 的 MSRV 是 1.66。 ## 获取帮助 如果你是 tower 的新手,它的 [指南][guides] 可能会对你有所帮助。在 tower-http 的仓库中,我们也有 [许多示例][examples] 展示了如何将所有内容整合在一起。 你也欢迎在 [`#tower` Discord 频道][chat] 中提问,或者打开一个 [问题][issue] 提出你的疑问。 ## 许可证 本项目采用 [MIT 许可证](tower-http/LICENSE) 授权。 ### 贡献 除非你明确声明,否则任何你有意提交给 Tower HTTP 项目以包含在内的贡献,都将被许可为 MIT,不附加任何额外的条款或条件。
标签:API开发, Axum, ETW劫持, gRPC, Hyper, Rust, Rust生态, Syscall, Tonic, Tower, Warp, Web开发, 中间件, 压缩, 可视化界面, 客户端, 开发框架, 开源库, 异步服务, 异步编程, 搜索引擎爬虫, 日志记录, 服务器, 网络流量审计, 网络编程, 解压, 重定向, 键值存储