axum is a web application framework that focuses on ergonomics and modularity.
axum is built on tower abstractions. Those abstractions:
- Are protocol agnostic. Which means you can use same code for multiple protocols like http and grpc.
- Has built in middlewares and utilities which you can use with axum.
- Allow lower level access. This makes it easy to create libraries to work with axum. You can find useful libraries here.
axum doesn't reinvent everything.
Commonly, an axum app uses:
- tokio for async runtime and utilities,
- hyper for http server.
- tower and tower-http for middleware and utilities.
All of those libraries are very well tested, maintained and used in production.
Overview of axum project layouts.