Pythonで非同期WebサービスやAPIを構築するための、軽量なASGIフレームワーク兼ツールキット。
tokio-rs/axum
towerとhyperを基盤とする、Rust向けの使いやすくモジュール化されたHTTPルーティング・リクエスト処理ライブラリ。
- スター
- 27,588
- フォーク
- 1,526
- 未解決の Issue
- 109
- 最終コミット
- 5 日前
これは何?
axumはHTTPサーバーを構築するためのRustライブラリです。マクロを使わずにルートをasyncハンドラー関数へ割り当てられます。ハンドラーはextractorを通じて、パース済みのJSONボディなど、リクエストから必要なデータを宣言するため、パースや検証を宣言的に記述できます。ハンドラーはresponse traitを実装する任意の値を返せるので、エラー処理とレスポンス生成を予測しやすく保てます。
独自のミドルウェアシステムを定義するのではなく、axumはtower::Serviceを基盤としています。towerおよびtower-httpエコシステムのタイムアウト、トレーシング、圧縮、認可を直接適用でき、hyperやtonicで構築されたアプリケーションとミドルウェアを共有できます。axumはhyperの薄いレイヤーであり、オーバーヘッドをほとんど追加しません。
このプロジェクトはcrates.ioで公開されており、現在は0.8.xのリリース系列です。一方、mainブランチでは破壊的変更を伴う0.9に向けて開発が進んでいます。unsafeコードを禁止しており、最低サポートRustバージョンは1.80です。
主な機能
- 01パスからasyncハンドラー関数への、マクロ不要のルーティング。
- 02JSONボディを含む、extractorを使った宣言的なリクエストのパース。
- 03ボイラープレートを最小限に抑え、通常の戻り値の型からレスポンスを生成。
- 04towerミドルウェアエコシステムとの完全な互換性。
- 05オーバーヘッドの少ない、hyperの薄いレイヤー。
- 06unsafeコードを禁止し、安全なRustだけで実装。
ユースケース
- 型付きのリクエストボディとレスポンスボディを使った、Rust製JSON REST APIの構築。
- トレーシング、タイムアウト、圧縮などの共通ミドルウェアをRustのWebサービスに追加。
- Web APIとhyperまたはtonicで構築したサービス間でのミドルウェア共有。
クイックスタート
- 1
Rust プロジェクトに axum を追加します(README にインストールコマンドの記載はありません)
- 2
README の使用例を src/main.rs にコピーします
- 3
examples ディレクトリで、ほかのコードサンプルを確認します
使う前に知っておきたいこと
- main ブランチには 0.9 より前の破壊的変更が含まれているため、リリース版を使う場合は 0.8.x ブランチを使用してください。
- サポート対象となる Rust の最低バージョンは 1.80 です。
収録されている特集
トピック
よくある質問
- axum とは?
- towerとhyperを基盤とする、Rust向けの使いやすくモジュール化されたHTTPルーティング・リクエスト処理ライブラリ。 axumはHTTPサーバーを構築するためのRustライブラリです。マクロを使わずにルートをasyncハンドラー関数へ割り当てられます。ハンドラーはextractorを通じて、パース済みのJSONボディなど、リクエストから必要なデータを宣言するため、パースや検証を宣言的に記述できます。ハンドラーはresponse traitを実装する任意の値を返せるので、エラー処理とレスポンス生成を予測しやすく保てます。
- axum は無料で使えますか?ライセンスは?
- axum は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- axum は今もメンテナンスされていますか?
- 活発にメンテナンス中。axum の最終コミットは 2026年10月20日 です。
- axum は何に使えますか?
- 型付きのリクエストボディとレスポンスボディを使った、Rust製JSON REST APIの構築。 トレーシング、タイムアウト、圧縮などの共通ミドルウェアをRustのWebサービスに追加。 Web APIとhyperまたはtonicで構築したサービス間でのミドルウェア共有。
- axum のインストール方法は?
- Rust プロジェクトに axum を追加します(README にインストールコマンドの記載はありません) README の使用例を src/main.rs にコピーします examples ディレクトリで、ほかのコードサンプルを確認します
- axum はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/tokio-rs/axum
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Vaporは、SwiftでWebサイトやAPI、クラウドサービスを構築するためのHTTP Webフレームワークです。
Node.jsでWebアプリやHTTP APIを構築するための、高速で自由度の高いミニマルなWebフレームワーク。
HTTPリクエストのURLをルート設定に照合し、名前付きルートからURLを生成するPHPコンポーネントです。
標準の型ヒントを使ってAPIを構築できるPython製Webフレームワーク。自動バリデーション、OpenAPIドキュメント、高いパフォーマンスを備えています。
JetBrainsが開発する、マイクロサービスやWebアプリケーション、HTTP APIを構築するための非同期Kotlinフレームワーク。