axum
ルータ(axum::routing::Router)とハンドラ(axum::handler::Handler)という基本的な機能のみを持つ薄いフレームワーク
インストール
code:sh
cargo add axum
内部実装
基本的な機能はルータとハンドラのみであるため、それ以外の HTTP サーバの構築に必要な機能は以下の外部 クレート に依存している すべては tower::Service
axum 固有の機能であるルータは tower::Service トレイトを実装しており、 tower::Layer として管理されている
ハンドラも tower::Service に変換することが可能
したがって、axum の構成要素は tower::Service として定義されており、その tower::Service は tower::Layer として管理されている
メリット
tower をベースとする axum 以外の別のクレートに入れ替えても、tower で定義したロギングなどの tower::Service 群は使い回すことが可能
過去に自身で用意した tower::Service の実装や tower のエコシステムを再利用できる