#async-http #http-middleware #http #http-server #async-io #async #async-trait

tower-async-http

Tower Async 中间件和工具,用于 HTTP 客户端和服务器。原始 Tower 库的 "Async Trait" 分支

6 个版本

0.2.0 2023 年 11 月 20 日
0.1.4 2023 年 9 月 10 日
0.1.3 2023 年 7 月 24 日

1745Web 编程

每月 39 次下载

MIT 许可证

665KB
12K SLoC

Tower Async HTTP

Tower Async 中间件和工具,用于 HTTP 客户端和服务器。

它是 https://github.com/tower-rs/tower-http 的分支,并利用 async traits 来简化事情,并使将异步函数集成到中间件变得更加容易。

Build status Crates.io Documentation Crates.io

有关此crate的更多信息,请参阅 crate 文档

中间件

Tower Async HTTP 包含许多中间件,在构建 HTTP 服务器和客户端时通常很有用。一些亮点包括

  • CompressionDecompression 用于压缩/解压缩响应体。
  • FollowRedirect 用于自动遵循重定向响应。

请参阅 文档 了解中间件的完整列表。

中间件使用 http crate 作为 HTTP 接口,因此它们与任何也使用 http 的库或框架兼容。例如 hyper

支持的 Rust 版本

目前 Tower Async 需要 nightly Rust,并且目前没有向后兼容性的承诺。

一旦 async traits 被稳定下来,我们将再次开始支持稳定 Rust,并可以开始努力实现向后兼容性。

请阅读 https://blog.rust-lang.net.cn/inside-rust/2023/05/03/stabilizing-async-fn-in-trait.html 了解 Rust 语言核心团队关于此路线图的更多信息。

入门

如果您是Tower的新用户并希望从基础知识开始,我们建议您查看一些原始的Tower 指南

我们的工作方式与Tower完全相同,只是在异步方式上,使用起来稍微容易一些。但核心思想显然是相同的,因此这应该仍然有助于您开始。

常见问题解答

https://github.com/plabayo/tower-async#faq阅读完整的tower-async常见问题解答。

许可证

本项目采用MIT许可证

贡献

除非您明确声明,否则您提交的任何有意包含在Tower HTTP中的贡献,均应按MIT许可证许可,不附加任何额外条款或条件。

依赖关系

~1.7–5.5MB
~138K SLoC