一个轻量的 ASGI 框架与工具包,用于用 Python 构建异步 Web 服务。
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
在 Rust 项目中添加 axum(README 未提供安装命令)
- 2
将 README 中的使用示例复制到 src/main.rs
- 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 数据每日更新。
相关项目
Vapor 是一个用 Swift 编写的服务端 HTTP Web 框架,用于构建网站、API 和云端服务。
面向 Node.js 的快速、极简网络框架,用于构建 Web 应用和 HTTP API。
基于标准 Python 类型提示构建 API 的 Python Web 框架,内置数据校验与自动生成的交互式文档。
基于 Kotlin 的异步框架,用于构建微服务、Web 应用和 HTTP 接口,由 JetBrains 开发。