Axum 是由 Tokio 团队开发的 Rust 异步 Web 框架,本资料围绕其核心用法整理,适用于构建异步 Rust API。
用途:搭建基于 Axum 的 Web 服务与 API,覆盖路由、处理器、提取器、中间件和状态管理。资料另提及advanced.md 涉及认证中间件、WebSocket、优雅关闭与自定义错误类型,并可用 mcp__documentation__fetch_docs 获取更完整文档。
主要能力:路由支持 get/post/put/delete,并可通过 nest 嵌套子路由;提取器提供 Path、Query、Json、State;状态通过 Arc 包装并配合 with_state 共享;中间件基于 Tower,可使用 tower-http 的 CorsLayer 与 TraceLayer;可编写健康检查与就绪检查端点。
必要用法:依赖示例为 axum = "0.7"、tokio(features = ["full"])、serde(features = ["derive"])、tower-http(features = ["cors", "trace"])。启用异步运行时需 #[tokio::main],并通过 tokio::net::TcpListener::bind 与 axum::serve 启动服务。
适用场景:需要异步运行时、Tower 生态中间件与提取器的 Rust API 项目。
限制:不适用于 Actix-web 或 Rocket 项目,也不适用于纯同步 Rust 代码,因为 Axum 需要 async runtime。资料还列出反模式与排查建议,如避免在处理器中执行阻塞操作、使用 Arc 包装状态、为错误实现 IntoResponse。