OSS TanbouSign in with GitHub

build Rust HTTP APIs with routing, extractors, and Tower middleware

OSS scale score 293.2OSS health 100
About these scores

OSS scale score is an unbounded metric that log-compresses and weights Stars, Watchers, Forks, and Contributors. Discovery score is the current OSS scale score minus the score at discovery. Update pace is commits in the last 30 days, growth momentum is the OSS scale score difference within the recent observation window, and OSS health is a 0–100 rating based on available recency, Community Health, and release data.

Stars
27,382
Primary language
Rust
License
MIT
Repository last updated
Oct 6, 2026
On this page

Overview

Axum is an HTTP routing and request-handling library for Rust. It provides macro-free routing, declarative request extractors, predictable response construction, and direct access to the Tower service and middleware ecosystem.

Features and best fit

Based on official documentation; not hands-on tested · Content checked:

Key features

Compose endpoints from routers, handlers, and extractors

Axum routes requests to handlers without a routing macro and uses extractors to declaratively parse path, query, body, and other request data. Rust return types can be converted into responses with little boilerplate.

Sources: [2]

Reuse Tower middleware across the networking stack

Axum uses tower::Service rather than a proprietary middleware system. That provides access to timeout, tracing, compression, authorization, and other middleware that can also be shared with Hyper- or Tonic-based services.

Sources: [2]

Best fit

Fits Rust backends that prefer explicit, type-driven HTTP composition

It works well for API servers and web backends built from small routers, extractors, and handlers, especially when Tokio provides the runtime and Tower is already the middleware abstraction.

Sources: [2]

Before adoption

Separate the released 0.8 API from upcoming 0.9 breaking changes

Axum 0.8.9 documents Rust 1.80 as its MSRV. The default branch contains breaking work toward 0.9, so production adoption should follow a release tag or the released 0.8.x line rather than copying main-branch APIs blindly.

Sources: [2][3]

Official sources

  1. [1]tokio-rs/axum — GitHub repository(2026-10-06)
  2. [2]Axum 0.8.9 — README(2026-10-06)
  3. [3]Axum 0.8.9 release(2026-10-06)
Supplemental curator note

Axum's key architectural choice is to reuse Tower's Service middleware ecosystem instead of inventing a separate middleware model. The current main branch targets 0.9 and contains breaking changes, so evaluate production code against the released 0.8.x line.

Try it in 3 steps

  1. 1

    Clone the reviewed Axum release

    Clone the stable 0.8.9 tag. Its README documents Rust 1.80 as the MSRV.

    git clone --depth 1 --branch axum-v0.8.9 https://github.com/tokio-rs/axum.git && cd axum
  2. 2

    Run the Hello World example

    Start the official workspace example, which serves Axum on 127.0.0.1:3000.

    cargo run -p example-hello-world
  3. 3

    Check the HTTP response

    Send a request from another terminal and confirm that the Hello World HTML response is returned.

    curl http://127.0.0.1:3000/
Check the official README

Growth

Growth trends · Last 30 days

27,382 Stars

Trend data is still being collected.

Built with

Categories and tags

GitHub data

GitHub dataView detailed GitHub data

GitHub Topics

  • http
  • routing
  • rust
Stars
27,382
Forks
1,496
Watchers
150
Open issues
87
Contributors
439
Owner type
Organization
Primary language
Rust
License
MIT
Repository last updated
Oct 6, 2026
Write a related article

Share a guide or use case for this OSS in Markdown. Articles are published after administrator approval.

Report incorrect information

Tell us if any listing information is incorrect or outdated.

After reading this page, do you know what to do next?