axum
https://docs.rs/axum/latest/axum/
GitHub.icon https://github.com/tokio-rs/axum
Rust の Web フレームワーク の一種
ルータ(axum::routing::Router)とハンドラ(axum::handler::Handler)という基本的な機能のみを持つ薄いフレームワーク
インストール
code:sh
cargo add axum
内部実装
RustによるWebアプリケーション開発 設計からリリース・運用まで
基本的な機能はルータとハンドラのみであるため、それ以外の HTTP サーバの構築に必要な機能は以下の外部 クレート に依存している
hyper
tower
tokio
すべては tower::Service
axum 固有の機能であるルータは tower::Service トレイトを実装しており、 tower::Layer として管理されている
ハンドラも tower::Service に変換することが可能
したがって、axum の構成要素は tower::Service として定義されており、その tower::Service は tower::Layer として管理されている
メリット
tower をベースとする axum 以外の別のクレートに入れ替えても、tower で定義したロギングなどの tower::Service 群は使い回すことが可能
過去に自身で用意した tower::Service の実装や tower のエコシステムを再利用できる
#Rust