PROD欧州主権の BaaS プラットフォームダッシュボードを開く →

エンジニアリング · 9 分読み取り

Axum と Actix-web: 本番環境ではどちらの Rust フレームワークですか?

Affane Daylami · Fondateur · 2026年8月9日

ブログに戻る

Axum と Actix-web は、運用環境で Rust バックエンドを構築するために最もよく使用される 2 つの非同期 HTTP フレームワークです。 Aurabase は早い段階で、11 のバックエンド サービスのうち 10 が Axum で実行され、Actix-web では実行されないことを決定しました。

この英語のテキストはフランス語のオリジナルから自動的に生成されたもので、まだレビューされていません。
このページは自動翻訳されました。英語版が正式です。

この選択は 2 つの枠組みに対する絶対的な判断ではありません。これはアーキテクチャ上の妥協であり、未測定のパフォーマンス数値ではなく、コードと公的記録で検証した内容をここに文書化しています。

必需品

Axum は独自のものを構築しません。ミドルウェアには tower::Service、トランスポートには Hyper に依存し、unsafeコードは禁止されています。 Actix-web には、独自のミドルウェア システム (Logger、Session、CORS)、ネイティブ HTTP/2 が組み込まれており、速度の証拠として TechEmpower Framework Benchmark を引用しています。 crates.io では、現在、Axum のダウンロード数は 4 億 3,600 万件を超え、Actix-web のダウンロード数は約 7,800 万件ですが、不利な点として 4 年近くの年月差があるにもかかわらずです。 Aurabase は、未測定のパフォーマンス数値のためではなく、11 の実際の Cargo.toml リポジトリで検証された Tower 構成に Axum を選択しました。

#
コンテキスト

2つのフレームワーク、同じTokioベース

Axum と Actix-web は両方とも、Rust のリファレンス非同期ランタイムである Tokio 上で実行されます。 Actix-web README にはこれを率直に「Tokio との完全な互換性」と記載しており、その公式コード例では歴史的な actix フレームワークのアクターを一切使用していません。注釈 #[get(...)]が付いた古典的な async fn ハンドラーで十分です。 「Actix-web には必ずアクターが必要である」という混乱は、現在の API には対応しなくなりました。

Axum は東京の直接軌道で誕生しました。リポジトリは GitHub 組織 tokio-rsに属しており、その公式ドキュメントは明確です — 「axum は tokio および hyper と連携するように設計されています。ランタイム層とトランスポート層の独立性は、少なくとも当面は目標ではありません。」

つまり、競合する 2 つのランタイムの選択ではなく、同じ非同期エンジン上に HTTP API を構築する 2 つの方法の選択になります。この比較では、ミドルウェア モデル、宣言されたメモリ セキュリティ、ネイティブ HTTP サーフェス、crates.io と GitHub で測定された導入の 4 つの検証可能な領域をカバーし、サポート コードとともに、Aurabase の Rust コア が Axum を選択した理由を説明します。

#
建築

コンポーザブルミドルウェアタワーと統合システムの比較

Axum は独自のミドルウェア システムを構築しません。独自の README によれば、タイムアウト、トレース、圧縮、認証など、すべてが tower::Serviceに依存しており、Tower エコシステムを介してすべてが「無料」で提供されます。 Hyper または Tonic アプリケーション用に作成されたミドルウェアは、調整せずに Axum アプリケーションでそのまま再利用できます。

Actix-web は逆の道をたどります。ユーザー ガイドに記載されている独自のミドルウェア システム (Logger、Session、CORS など) を、独自の関連する HTTP クライアント (awc) に埋め込みます。これはより統合されたプラットフォームであり、組み立てる部品は少なくなりますが、他の汎用 Rust 非同期エコシステムとの直接的な再利用も少なくなります。

ルーティングは、同じ明示的な構成ロジックに従います。 Axum は、ルートを宣言するための「マクロフリー API」を主張しています。Router::new().route(...) は通常の Rust 値のままです。Actix-web は、ハンドラーの直上に配置された HTTP メソッド (#[get(...)]) による専用マクロに依存しています。能力の差ではなく、二つの発言スタイル。

ニュアンス

Axum のコンポーザビリティにはコストがかかります。CORS、圧縮、またはクエリ サイズ制限を取得するには、tower-http を追加する必要があります (Actix-web が内部的にこれらを提供します)。すぐに使用できる統合と明示的な構成 — これは実際にはトレードオフであり、一方の欠陥ではありません。

#
メモリのセキュリティ

安全ではないと宣言されたゼロ、2 つの異なる MSRV

Axum はソース コードで #![forbid(unsafe_code)] を主張しています。フレームワークの 100% は安全な Rust で書かれており、抜け穴はありません。 Actix-web は README で同様の記述をしていません。これはフレームワークが危険であるという意味ではなく、プロジェクトによってそのような保証が公に示されていないというだけです。

2 つのフレームワークは異なる最小バージョンの Rust を設定します。Axum は Rust 1.80 から互換性があり、Actix-web は Rust 1.88 を必要とします。 Actix-web のウィンドウが狭くなり、ツールチェーンが古いバージョンでスタックしている場合に問題になる可能性があります。

#
特長

それぞれがネイティブに出荷するもの

Actix-web は、HTTP/1.x および HTTP/2、WebSocket、透過圧縮 (br、gzip、deflate、zstd)、OpenSSL または Rustls 経由の TLS など、大規模な HTTP サーフェスをクレート内に直接リストします。すべてが統合され、追加の依存関係を選択する必要はありません。

Axum は、ルーティング、エクストラクター、エラー処理など、意図的に最小限にとどめています。残り (圧縮、CORS、リクエスト制限、トレース) は、同じエコシステムのコンパニオン クレートである tower-httpから提供されます。たとえば、Aurabase は、パッケージ全体ではなく、意図的に選択された tower-http の cors、 trace、 compression-gzip、 request-id、 timeout 、および limit 機能のみを有効にします。

#
パフォーマンス

確認できるものと再公開できないもの

Actix-web は、「TechEmpower Framework Benchmarkによると、利用可能な最速の Web フレームワークの 1 つ」 (ラウンド r21、複合) という正確な外部ソースを引用してその速度を主張しており、独自の README に techempower.com への直接リンクが含まれています。これは自分で確認できるタイプの見積もりです。

Axum はこれに匹敵する主張を行っていない。その README は、「axum はハイパーの上にある比較的薄い層であり、追加されるオーバーヘッドはほとんどありません」という控えめな記述に限定されており、正式なプロジェクトの数値ではなく、サードパーティ コミュニティのベンチマークへの 2 つのリンクが含まれています。

ここでやらないこと

Aurabase does not currently publish any quantified comparison of Axum versus Actix-web on its own production load. A number that we have not measured ourselves will never be republished here as a product argument — see our reproducible benchmark methodology, built precisely to publish a verifiable method rather than a bare number.

#
養子縁組

この記事の執筆時点での crates.io と GitHub の意見

crates.ioでは、Axum では、過去 90 日間で 436,464,896 件のダウンロードがあり、これには 109,000,226 件が含まれます。 Actix-web は、最近の同じウィンドウ (crates.io、2026 年 8 月 23 日にアクセス) での 9,730,975 を含む、合計 78,074,020 ダウンロードを蓄積します。この点において、差は明らかです。Axum は現在、Actix-web の約 11 倍の最新ダウンロードを受け取ります。

逆説: Actix-web は 2 つのうち古いもので、Axum の場合は 2021 年 7 月に公開されるのに対し、2017 年 10 月以降 crates.io で公開されています。 GitHub では、人気の差はさらに縮まっています。 26,931 個の スターが tokio-rs/axum 対 24,793 が に対して actix/actix-web (GitHub、2026 年 8 月 23 日にアクセス) — そして、Actix-web はより多くのフォーク (1,462 と比較して 1,880) を保持しており、これは歴史的な貢献者ベースがまだアクティブであることを示しています。

Actix-web は依然として廃止されていません。そのバージョン 4.15.0 は、この記事の執筆の 3 日前である 2026 年 8 月 21 日に公開されました。 GitHub の発行キューでは、Axum はオープン チケット 75 件を表示していますが、Actix-web のチケットは 192 件です。これはメンテナンスのシグナルなので注意して読んでください。ほぼ 4 年も長い歴史が機械化してキューを長くしており、これはプロジェクトが慎重でないことの証拠ではありません。

アストゥチェ

Axum の README 自体は、その main ブランチが互換性を破る変更を含むバージョン 0.9 を準備していると警告しています。 crates.io で公開されている安定したブランチは 0.8.xのままです。今日から始める場合は、リポジトリのデフォルトのブランチに従うのではなく、正確なバージョンを固定してください。

#
Aurabase の選択

なぜ Axum なのか、コードで検証

Aurabase のルート Cargo ワークスペースには 11 個のサービスがあります。認証とストレージを含め、API ゲートウェイ (aura-gateway) からネイティブ AI エンジン (aura-ai) まで、10 は Axum に直接依存しています。 11 番目の aura-migratorは、HTTP サーバーを使用しない移行 CLI ツールです。単純に、何も選択することができません。リポジトリに Cargo.toml はなく、ルート Cargo.lock のエントリも、推移的な依存関係であっても actix-webを宣言しません。 .rs ファイルには use actix_web::命令が含まれていません。

Cargo.toml (ワークスペースルート)toml
axum       = { version = "0.8", features = ["ws", "multipart", "macros"] }
tower      = { version = "0.5", features = ["full"] }
tower-http = { version = "0.6", features = ["cors", "trace", "compression-gzip", "request-id", "timeout", "limit"] }
hyper      = { version = "1", features = ["full"] }

この選択は表面的なものではありません。Aurabase ゲートウェイ (aura-gateway) は、ミドルウェアを tower::ServiceBuilder および Layer タワー ( TraceLayer、 TimeoutLayer、 RequestBodyLimitLayer) でスタックし、リクエスト識別子、認証、およびセキュリティヘッダー用に axum::middleware::from_fn を介して社内レイヤーによって補完されます。これはまさに、Axum の README で強調されている構成モデルです。Tower ミドルウェアは、ルーターの残りの部分とは独立してスタックされ、テストされ、再利用されます。

検証済みと製品の目的

ここで検証されるのは、選択したアーキテクチャ、つまり実際の依存関係、ミドルウェアの実際の構成です。数値化されたパフォーマンスの向上は主張されていません。再公開されないものについては、前のセクションを参照してください。

#
概要

Axum と Actix-web を並べて表示

ミドルウェア構成タワー::サービス、独自のものは何もありません統合システム (ロガー、セッション、CORS)
メモリのセキュリティforbid(unsafe_code) が宣言されました同等の宣言はありません
MSRVさび 1.80さび 1.88
ライセンスマサチューセッツ工科大学Apache-2.0 または MIT
ネイティブHTTPルーティング + エクストラクター。残りは tower-http 経由HTTP/1.x、HTTP/2、圧縮、統合 TLS
crates.io ダウンロード数 (合計)436 464 89678 074 020
crates.io をダウンロード (90 日)109 000 2269 730 975
GitHub スター26 93124 793
以来 crates.io で2021年7月2017年10月
Aurabaseで使用されるはい — 11 件中 10 件の Rust サービスいいえ — 直接的または推移的な依存関係はありません

ソース: crates.io API (/api/v1/crates/axum、 /api/v1/crates/actix-web) および GitHub API、2026 年 8 月 23 日にアクセス。残りについては、公式 README tokio-rs/axum および actix/actix-web を参照してください。

#
決定

誰が何を選ぶべきか

モジュール式のマルチサービス Rust バックエンドを開始します。 Axum は自然に適合します。Aurabase が 10 個の HTTP サービス間で行うのと同様に、その Tower 構成により、サービス間でミドルウェアを共有することが容易になります。

既存の動作する Actix-Web コード ベースがあります。 急いで移行する必要はありません。 Actix-web は積極的に保守されており、依存関係を追加することなく、HTTP/2、WebSocket、圧縮をネイティブにカバーします。

tower-http を自分で組み立てることなく、できるだけ多くの HTTP 機能を 1 つのクレートで提供したいと考えています。 Actix-web はこのニーズに直接応えます。

既に Tower ミドルウェアを他の Hyper または Tonic (gRPC) サービスと共有しています。 Axum はこれらのレイヤーをそのまま再利用します。これが Aurabase で重視された議論です。

#
よくある質問

よくある質問

Axum は 2026 年に生産準備が整っていますか?+
はい: このフレームワークは tokio-rs 組織によって保守されており、バージョン 0.8.9 (2026 年 4 月) で、crates.io では 4 億 3,600 万件以上のダウンロードがあります。 Aurabase は、11 の Rust サービスのうち 10 の本番環境でこれを使用しており、Cargo.toml リポジトリのルートで直接検証されています。
すべてを書き直さずに Actix-Web プロジェクトを Axum に移行できますか?+
どちらのフレームワークも Tokio 上で実行されるため、非同期ビジネス ロジックが直接実行されます。変更されるのはルーティング層とミドルウェア層です。Actix-Web エクストラクターは Axum エクストラクターで書き換える必要があり、統合ミドルウェアは同等の tower-http 層に置き換えられます。私たちの知る限り、2 つのフレームワーク間の自動移行ツールは存在しません。
Axum と Actix-web はどちらが速いですか?+
どちらのチームも、同一のワークロードにおける 2 つのフレームワーク間の直接の定量的比較を公開していません。 Actix-web は、速度の証拠として TechEmpower Framework Benchmark (ラウンド r21、複合) を挙げています。 Axum は、自社の README によれば、自社を Hyper の上の薄い層と説明しており、そのパフォーマンスは同等であると考えられています。実際には、運用バックエンドのボトルネックは、ほとんどの場合、HTTP フレームワーク自体ではなく、データベースまたはネットワークに起因します。
Tower のエコシステムに基づいて選択する必要がありますか?+
組織がすでに Tonic または Hyper raw アプリケーションで gRPC サービスを使用している場合は、はい、Axum を使用すると、調整せずに同じ Tower レイヤーを再利用できます。これはまさに Aurabase の選択において重視されたことです。ゲートウェイ ミドルウェア (トレース、リクエスト制限、CORS) は標準のレイヤー タワーであり、フレームワーク固有のコードではありません。

導入の準備はできていますか?

5 分でバックエンドが完成します。

クレジット カードは不要 · 500 MB 無料 · 50,000 MAU