Axum is an HTTP routing and request-handling library for Rust that prioritizes ergonomics and modularity. The library enables developers to build web applications with a macro-free API for routing requests to handlers, declarative request parsing through extractors, and straightforward error handling. Response generation is designed to require minimal boilerplate code.
A defining characteristic of axum is its integration with the tower ecosystem. Rather than implementing its own middleware system, axum leverages tower::Service, which provides access to a broad range of middleware, services, and utilities including timeouts, tracing, compression, and authorization. This design choice allows middleware to be shared across applications built with hyper or tonic, creating interoperability across different Rust web frameworks.
The library is built as a relatively thin layer on top of hyper, adding minimal overhead to request handling. Performance benchmarks show that axum's performance is comparable to hyper itself, with results available in external benchmark repositories. The codebase maintains a commitment to safety by using forbid(unsafe_code), ensuring all implementations are written in 100% safe Rust.
According to GitGenius activity tracking, axum maintains active development with a median issue and pull request response latency of 0.6 hours across 251 tracked items, though the mean response time is 38.5 hours. The most frequently applied issue labels are A-axum with 34 occurrences, C-feature-request with 20, and A-axum-extra with 15. The project's core contributors include jplatte with 454 tracked events, davidpdrsn with 247 events, and mladedav with 139 events. The repository shares overlapping contributors with major projects including microsoft/vscode, rust-lang/rust, and microsoft/typescript, indicating cross-project collaboration within the Rust ecosystem.
The project is currently in active development toward version 0.9, with the main branch containing breaking changes. The stable 0.8.x branch is available for users seeking a released version on crates.io. The minimum supported Rust version is 1.80. The repository includes an examples directory with multiple projects demonstrating axum usage patterns, and comprehensive documentation with code snippets. Community support is available through a Discord channel and discussion forums for users seeking assistance.
Axum is licensed under the MIT license, with contributions accepted under the same terms. The project maintains a contributing guide to facilitate community involvement in its development.