ページ内ナビ
概要
TowerはRustで堅牢なnetwork client/serverを構築するための再利用可能な部品群です。requestを受けてresponseまたはerrorを返すService traitを中心に、LayerとServiceBuilderでtimeout・rate limit・load balancingなどのmiddlewareを合成します。
特徴と向いている用途
公式資料に基づく紹介・実機未検証 · 内容確認日:
主な特徴
Service traitでrequest/response処理を共通化する
Towerは非同期関数に相当するService traitをclient/server双方の共通接点として使います。protocol実装、application logic、middlewareを同じ抽象化で接続できるため、network stackの部品を分離して再利用できます。
出典:[2]
LayerとServiceBuilderでmiddlewareを積み重ねる
timeout、rate limiting、load balancingなどをinner Serviceを包むmiddlewareとして表現し、LayerとServiceBuilderで順序を保って合成できます。必要なmiddlewareはCargo featureで選択できます。
出典:[2]
向いている用途
Axum・Hyper・Tonicなど複数のnetwork libraryで横断利用したい場合に向く
HTTPやgRPCなどの上位libraryがTowerのServiceをintegration pointとして採用しているため、共通のmiddlewareやapplication behaviorをnetwork implementationから切り離したいRust backendに適します。
出典:[2]
導入前の確認
参考にした公式資料
- [1]tower-rs/tower — GitHub repository(2026-10-06)
- [2]Tower 0.5.3 — README(2026-10-06)
- [3]Tower 0.5.3 release(2026-10-06)
編集部からの補足
TowerはHTTP専用ではなく、request/response型のnetwork client/serverへ共通のmiddlewareを差し込むための抽象化です。Axum・Hyper・Tonicの下で使う場合は、どの層がServiceを所有するかを先に決めると構成を整理しやすくなります。
3ステップで試す
- 1
確認済みのTowerを取得する
確認対象のTower 0.5.3を固定して取得します。Rust toolchainとCargoが必要です。
git clone --depth 1 --branch tower-0.5.3 https://github.com/tower-rs/tower.git && cd tower - 2
公式CIと同じ全feature testを実行する
Tower repositoryのCIで使われるtest commandを実行し、Service・Layer・middlewareを含むworkspace全体を確認します。
cargo test --workspace --all-features - 3
API文書を生成する
全featureを有効にしたworkspaceのAPI文書を生成します。Towerは単体でnetwork serverを提供するlibraryではないため、ServiceとLayerのAPIを確認して利用するmiddlewareを選びます。
cargo doc --workspace --no-deps --all-features
成長
成長の推移 · 直近30日
4,315 Stars
推移データを蓄積中です。
Built with
カテゴリとタグ
GitHubデータ
関連情報
関連記事を投稿するこのOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。
あわせて探訪
- Lapin1,237 Stars
共通タグ 2件 · 共通カテゴリ 2件 · 同じ言語
RabbitMQへAMQP 0-9-1で接続するruntime非依存のasync Rust client
Rust - Tower HTTP920 Stars
共通タグ 2件 · 共通カテゴリ 2件 · 同じ言語
Trace・圧縮・timeoutなどHTTP向け機能をTower middlewareとして追加する
Rust - Axum27,382 Stars
共通タグ 2件 · 共通カテゴリ 1件 · 同じ言語
ルーティング・extractor・Tower middlewareでRustのHTTP APIを構築する
Rust - Diesel14,193 Stars
共通タグ 2件 · 共通カテゴリ 1件 · 同じ言語
Rustの型システムでSQL queryとschemaを検証するORM・Query Builder
Rust - SeaORM9,914 Stars
共通タグ 2件 · 共通カテゴリ 1件 · 同じ言語
非同期query・relation・migrationをまとめて扱うRust向けrelational ORM
Rust - Loco9,397 Stars
共通タグ 2件 · 共通カテゴリ 1件 · 同じ言語
Rails型の規約とgeneratorでRust backendを素早く立ち上げるapplication framework
Rust
情報の誤りを報告
掲載内容に誤りや古い情報があればお知らせください。