OSS探訪GitHubでログイン

routing・extractor・middlewareを組み合わせてRustのHTTP serverを構築するWeb framework

OSS規模スコア 235.3OSS健全度 100
スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
4,445
主要言語
Rust
ライセンス
Apache-2.0
リポジトリ最終更新
2026/10/05
ページ内ナビ

概要

PoemはRust向けのWeb frameworkです。routing、extractor、response、middlewareを中心にHTTP serverを構築でき、WebSocket、SSE、session、TLS、static file、Tower互換などをfeatureで追加できます。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

Route・handler・extractorでHTTP endpointを構成する

Routeへpathとhandlerを登録し、Pathなどのextractorでrequest dataをRust型として受け取れます。Endpointへmiddlewareを適用してrequest/responseの横断処理を追加できます。

出典:[2]

WebSocket・SSE・TLS・sessionなどをfeatureで追加する

serverを基本に、WebSocket、SSE、compression、cookie/session、static files、rustls/native TLS、Tower互換などを必要に応じて有効化できます。poem-openapiを組み合わせるとOpenAPI対応APIも構築できます。

出典:[2][3]

向いている用途

HTTP server機能を一つのRust frameworkでまとめたいbackendに向く

API serverやWeb applicationでroutingからmiddleware、streaming、TLSまで同じframework内で管理したい構成に適します。Tower Service/Layerとのcompatibilityも提供されます。

出典:[2]

導入前の確認

stable 3.1.12と未リリース4.0系のMSRV・breaking changeを分けて確認する

安定版3.1.12はRust 1.85をMSRVとします。一方、default branchの4.0.0は未リリースでRust 1.94へ引き上げ、public integration typeやdependency更新を含むbreaking changeを予定しているため、upgrade時はmigration guideを確認してください。

出典:[3][4][5]

参考にした公式資料

  1. [1]poem-web/poem — GitHub repository(2026-10-06)
  2. [2]Poem 3.1.12 — README(2026-10-06)
  3. [3]Poem 3.1.12 — Cargo.toml(2026-10-06)
  4. [4]Poem 3.1.12 — CHANGELOG(2026-10-06)
  5. [5]Poem — 4.0 migration guide on development branch(2026-10-06)
編集部からの補足

HTTP server本体からWebSocket・session・TLS・static fileまで一つのframeworkで揃えたい場合に向きます。default branchは未リリース4.0系へ移行中なので、3.1.x production codeへmasterのAPI例をそのまま持ち込まないよう注意が必要です。

3ステップで試す

  1. 1

    安定版3.1.12のsourceを取得する

    crates.ioのPoem 3.1.12 packageに対応するcommitへ固定します。Rust 1.85以上が必要です。

    git clone https://github.com/poem-web/poem.git && cd poem && git checkout 393c7410855661ffcdc6714371aaaf2ce251b508
  2. 2

    Hello World exampleを起動する

    公式examples workspaceのHello World serverを起動し、port 3000でrequestを待ち受けます。

    cd examples && cargo run -p example-hello-world
  3. 3

    path parameterのresponseを確認する

    別端末からrequestを送り、Path extractorとhandlerによってhello: worldが返ることを確認します。

    curl -fsS http://127.0.0.1:3000/hello/world
公式READMEで確認

成長

成長の推移 · 直近30日

4,445 Stars

推移データを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • fastapi
  • framework
  • http
  • poem
  • rust
  • rust-crate
  • rust-lang
  • rust-library
  • server
  • web
Stars
4,445
Forks
360
Watchers
40
Open Issues
183
Contributors
142
所有者種別
Organization
主要言語
Rust
ライセンス
Apache-2.0
リポジトリ最終更新
2026/10/05

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?