Repolode
tokio-rs

tokio-rs/axum

基于 tower 和 hyper 的 Rust HTTP 路由与请求处理库,注重易用性与模块化。

Star
27,588
Fork
1,526
未关闭 Issue
109
最近提交
5天前

这是什么?

axum 是一个用于构建 HTTP 服务的 Rust 库。它无需宏即可将路由映射到异步处理函数,处理函数通过提取器(extractor)声明所需的请求数据,例如自动解析的 JSON 请求体,使参数解析保持声明式。处理函数可返回任何实现响应转换的类型,错误处理和响应生成因此简单可预期。

axum 没有自建中间件体系,而是基于 tower::Service 构建。tower 与 tower-http 生态中的超时、日志追踪、压缩、鉴权等组件可以直接使用,中间件也能与基于 hyper 或 tonic 编写的应用共享。它是 hyper 之上的一层薄封装,额外开销很小。

该项目已发布到 crates.io,当前稳定版本线为 0.8.x;main 分支正在向包含破坏性变更的 0.9 版本推进。项目禁用 unsafe 代码,最低支持 Rust 1.80。

核心功能

  • 01无需宏即可将路径路由到异步处理函数。
  • 02通过提取器声明式解析请求,包括 JSON 请求体。
  • 03直接用普通返回值生成响应,样板代码少。
  • 04完整兼容 tower 中间件生态。
  • 05基于 hyper 的薄封装,额外开销低。
  • 06全部使用安全 Rust 编写,禁止 unsafe 代码。

适用场景

  • 使用 Rust 构建带类型化请求与响应体的 JSON REST API。
  • 为 Rust Web 服务添加日志追踪、超时或压缩等通用中间件。
  • 在 Web API 与基于 hyper 或 tonic 的服务之间复用中间件。

快速上手

  1. 1

    在 Rust 项目中添加 axum(README 未提供安装命令)

  2. 2

    将 README 中的使用示例复制到 src/main.rs

  3. 3

    浏览 examples 目录以获取更多代码示例

使用前须知

  • main 分支包含面向 0.9 版本的破坏性变更,若需已发布版本请使用 0.8.x 分支。
  • 最低支持的 Rust 版本为 1.80。

收录于专题

标签

常见问题

axum 是什么?
基于 tower 和 hyper 的 Rust HTTP 路由与请求处理库,注重易用性与模块化。 axum 是一个用于构建 HTTP 服务的 Rust 库。它无需宏即可将路由映射到异步处理函数,处理函数通过提取器(extractor)声明所需的请求数据,例如自动解析的 JSON 请求体,使参数解析保持声明式。处理函数可返回任何实现响应转换的类型,错误处理和响应生成因此简单可预期。
axum 可以免费使用吗?用的什么许可证?
axum 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
axum 还在维护吗?
活跃维护中。axum 最近一次提交是在 2026年10月20日。
axum 适合用来做什么?
使用 Rust 构建带类型化请求与响应体的 JSON REST API。 为 Rust Web 服务添加日志追踪、超时或压缩等通用中间件。 在 Web API 与基于 hyper 或 tonic 的服务之间复用中间件。
axum 怎么安装和运行?
在 Rust 项目中添加 axum(README 未提供安装命令) 将 README 中的使用示例复制到 src/main.rs 浏览 examples 目录以获取更多代码示例
在哪里获取 axum?
源代码和安装说明在 GitHub 上:https://github.com/tokio-rs/axum

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目