Repolode
tokio-rs

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. 1

    Rust プロジェクトに axum を追加します(README にインストールコマンドの記載はありません)

  2. 2

    README の使用例を src/main.rs にコピーします

  3. 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 の数値は毎日更新されます。

関連プロジェクト