# System map — tokio-rs/axum

> Canonical page: https://codevetter.com/unpack/axum/system-map

# System map — tokio-rs/axum

Scanned commit f8b02f22cf10bee707bda19b58265b9e33677535 (2026-09-30). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

The repository is a library ecosystem with application examples, rather than one deployable service. The root workspace divides foundational contracts, HTTP execution, optional utilities, and procedural macros across four crates. Example binaries assemble their own listeners, application state, middleware, and external integrations in a separate workspace. Build and release behavior is described by Cargo manifests and GitHub Actions.
- The root workspace includes axum and axum-* members, uses resolver 2, declares Rust 1.80, and forbids unsafe code through workspace lints. — [Cargo.toml#L1-L14](https://github.com/tokio-rs/axum/blob/f8b02f22cf10bee707bda19b58265b9e33677535/Cargo.toml#L1-L14)
- axum-core exposes body, extract, response, RequestExt, and RequestPartsExt; its crate documentation recommends it for libraries implementing FromRequest or IntoResponse. — [axum-core/src/lib.rs#L1-L33](https://github.com/tokio-rs/axum/blob/f8b02f22cf10bee707bda19b58265b9e33677535/axum-core/src/lib.rs#L1-L33)
- axum explicitly targets Tokio and Hyper; runtime and transport independence are not stated goals, while Tower Service supplies its middleware integration. — [axum/src/lib.rs#L12-L21](https://github.com/tokio-rs/axum/blob/f8b02f22cf10bee707bda19b58265b9e33677535/axum/src/lib.rs#L12-L21)
- Router stores an Arc<RouterInner<S>> containing a PathRouter and catch-all fallback; PathRouter stores endpoints in a vector indexed by RouteId and matches paths through matchit. — [axum/src/routing/mod.rs#L75-L102](https://github.com/tokio-rs/axum/blob/f8b02f22cf10bee707bda19b58265b9e33677535/axum/src/routing/mod.rs#L75-L102) [axum/src/routing/path_router.rs#L16-L19](https://github.com/tokio-rs/axum/blob/f8b02f22cf10bee707bda19b58265b9e33677535/axum/src/routing/path_router.rs#L16-L19) [axum/src/routing/path_router.rs#L357-L386](https://github.com/tokio-rs/axum/blob/f8b02f22cf10bee707bda19b58265b9e33677535/axum/src/routing/path_router.rs#L357-L386)
- axum-extra gates utilities behind Cargo features, while axum-macros is a proc-macro crate built with syn, quote, and proc-macro2. — [axum-extra/src/lib.rs#L8-L34](https://github.com/tokio-rs/axum/blob/f8b02f22cf10bee707bda19b58265b9e33677535/axum-extra/src/lib.rs#L8-L34) [axum-macros/Cargo.toml#L17-L32](https://github.com/tokio-rs/axum/blob/f8b02f22cf10bee707bda19b58265b9e33677535/axum-macros/Cargo.toml#L17-L32)
- examples/Cargo.toml defines a separate workspace; example binaries bind listeners and pass application routers to axum::serve, with database and session ownership established inside those binaries. — [examples/Cargo.toml#L1-L8](https://github.com/tokio-rs/axum/blob/f8b02f22cf10bee707bda19b58265b9e33677535/examples/Cargo.toml#L1-L8) [examples/sqlx-postgres/src/main.rs#L38-L60](https://github.com/tokio-rs/axum/blob/f8b02f22cf10bee707bda19b58265b9e33677535/examples/sqlx-postgres/src/main.rs#L38-L60) [examples/oauth/src/main.rs#L51-L80](https://github.com/tokio-rs/axum/blob/f8b02f22cf10bee707bda19b58265b9e33677535/examples/oauth/src/main.rs#L51-L80)
- CI specifies locked workspace tests and all-target, all-feature Clippy checks for both workspaces, plus formatting, documentation, feature, MSRV, ARM, and selected WASM checks. — [.github/workflows/CI.yml#L15-L49](https://github.com/tokio-rs/axum/blob/f8b02f22cf10bee707bda19b58265b9e33677535/.github/workflows/CI.yml#L15-L49) [.github/workflows/CI.yml#L51-L64](https://github.com/tokio-rs/axum/blob/f8b02f22cf10bee707bda19b58265b9e33677535/.github/workflows/CI.yml#L51-L64) [.github/workflows/CI.yml#L83-L145](https://github.com/tokio-rs/axum/blob/f8b02f22cf10bee707bda19b58265b9e33677535/.github/workflows/CI.yml#L83-L145) [.github/workflows/CI.yml#L163-L197](https://github.com/tokio-rs/axum/blob/f8b02f22cf10bee707bda19b58265b9e33677535/.github/workflows/CI.yml#L163-L197)
- Release-plz runs on main and v0.8.x for the tokio-rs owner; configuration disables release-on-every-commit behavior and automatic changelog updates, while README warns that main contains forthcoming 0.9 breaking changes. — [.github/workflows/release-plz.yml#L3-L18](https://github.com/tokio-rs/axum/blob/f8b02f22cf10bee707bda19b58265b9e33677535/.github/workflows/release-plz.yml#L3-L18) [release-plz.toml#L1-L12](https://github.com/tokio-rs/axum/blob/f8b02f22cf10bee707bda19b58265b9e33677535/release-plz.toml#L1-L12) [axum/README.md#L26-L31](https://github.com/tokio-rs/axum/blob/f8b02f22cf10bee707bda19b58265b9e33677535/axum/README.md#L26-L31)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
