ページ内ナビ
概要
Tower HTTPはHTTP client/server向けのTower middlewareとutilityをまとめたRust libraryです。request/responseのTrace、圧縮・展開、redirect、timeout、static file配信などをTowerのService stackへ追加できます。
特徴と向いている用途
公式資料に基づく紹介・実機未検証 · 内容確認日:
主な特徴
HTTP request/responseへTrace・圧縮・redirectを追加する
READMEはTrace、Compression/Decompression、FollowRedirectを代表的なmiddlewareとして挙げています。HTTP処理の横断機能をhandler本体から分離し、Layerとして組み込めます。
出典:[2]
向いている用途
Axum・Hyper系backendの共通HTTP policyをまとめたい場合に向く
logging、timeout、compression、sensitive header処理などをroutingやbusiness logicから切り離し、複数serviceで同じHTTP middleware stackを再利用したい構成に適します。
出典:[3]
導入前の確認
参考にした公式資料
- [1]tower-rs/tower-http — GitHub repository(2026-10-06)
- [2]Tower HTTP 0.7.1 — README(2026-10-06)
- [3]Tower HTTP 0.7.1 — Axum key/value store example(2026-10-06)
- [4]Tower HTTP 0.7.1 release(2026-10-06)
編集部からの補足
AxumなどのHTTP applicationへ観測・圧縮・timeoutといった横断処理を追加する用途で、個別実装を減らせます。利用するmoduleだけfeatureで有効化し、特にstatic file配信はrelease間の挙動変更を確認してください。
3ステップで試す
- 1
確認済みのTower HTTPを取得する
確認対象のTower HTTP 0.7.1を固定して取得します。Rust toolchainとCargoが必要です。
git clone --depth 1 --branch tower-http-0.7.1 https://github.com/tower-rs/tower-http.git && cd tower-http - 2
Axum key/value store exampleを起動する
公式exampleを起動します。Trace、timeout、compression、header処理を組み込んだHTTP serverが標準ではport 3000で待ち受けます。
RUST_LOG=axum_key_value_store=trace,tower_http=trace cargo run --bin axum-key-value-store - 3
POSTとGETでmiddleware込みのHTTP flowを確認する
別端末から値を保存して取得し、responseとserver側のTower HTTP traceを確認します。
curl -fsS -X POST --data 'hello' http://127.0.0.1:3000/demo && curl -fsS http://127.0.0.1:3000/demo
成長
成長の推移 · 直近30日
920 Stars
推移データを蓄積中です。
Built with
カテゴリとタグ
GitHubデータ
関連情報
関連記事を投稿するこのOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。
あわせて探訪
- Axum27,382 Stars
共通タグ 4件 · 共通カテゴリ 1件 · 同じ言語
ルーティング・extractor・Tower middlewareでRustのHTTP APIを構築する
Rust - Actix Web24,855 Stars
共通タグ 3件 · 共通カテゴリ 2件 · 同じ言語
RustでHTTP APIやWebSocketを高性能に構築し、Tokio上で非同期Webサーバーを動かす
Rust - async-graphql3,682 Stars
共通タグ 3件 · 共通カテゴリ 1件 · 同じ言語
型安全なSchema・resolver・subscriptionをRustで実装するGraphQL server library
Rust - aiohttp16,569 Stars
共通タグ 3件 · 共通カテゴリ 1件
asyncioでHTTP client・server・WebSocketを構築するPython framework
Python - Loco9,397 Stars
共通タグ 3件 · 同じ言語
Rails型の規約とgeneratorでRust backendを素早く立ち上げるapplication framework
Rust - Lapin1,237 Stars
共通タグ 2件 · 共通カテゴリ 3件 · 同じ言語
RabbitMQへAMQP 0-9-1で接続するruntime非依存のasync Rust client
Rust
情報の誤りを報告
掲載内容に誤りや古い情報があればお知らせください。