TL;DR

Rust の Web フレームワークの 1 つ。ルータ(axum::routing::Router)とハンドラ(axum::handler::Handler)という基本的な機能だけを持つ、薄いフレームワークである。

仕組み

axum 自身はルータとハンドラしか持たないので、HTTP サーバの構築に必要なそれ以外の機能は、hyper、tower、tokio といった外部のクレートに任せている。

axum の構成要素は、すべて tower::Service として定義されている。axum 固有の機能であるルータは tower::Service トレイトを実装しており、tower::Layer として管理される。ハンドラも tower::Service に変換できる。

そのため、tower をベースにした別のクレートに入れ替えても、tower で定義したロギングなどの tower::Service はそのまま使い回せる。過去に自分で書いた tower::Service の実装や、tower のエコシステムを再利用できる。

例

cargo add でインストールする。

cargo add axum

関連

出典