OSS探訪GitHubでログイン

Web serverとRuby frameworkを最小request/response interfaceでつなぎ、middleware stackを共通化する

スコアの見方

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

Stars
5,131
主要言語
Ruby
ライセンス
MIT
リポジトリ最終更新
2026/09/08
ページ内ナビ

概要

RackはRuby Web ecosystemの共通interfaceです。HTTP request/responseを単純なcontractへ落とし込み、web server、framework、application、middlewareを相互接続します。Rack::RequestやRack::Response、parameter/multipart parsing等の共通部品も提供します。

特徴と向いている用途

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

主な特徴

Web server・framework・applicationを共通のrequest/response interfaceでつなぐ

RackはHTTP requestをenvironmentとしてapplicationへ渡し、status・headers・bodyから成るresponseを返す最小interfaceを定義します。serverとframeworkの間を共通化することで、RailsやSinatra等の上位frameworkとserver implementationを疎結合にできます。

出典:[2]

middleware stackとRequest/Response helperでHTTP処理を段階的に組み立てる

logging、conditional GET、static file等のmiddlewareをapplicationの前後へ積み、Rack::Request、Rack::Response、query/multipart parser等を使ってframeworkを自作する場合の共通処理も再利用できます。

出典:[2]

向いている用途

Ruby Web stackのmiddleware、gateway、framework integrationを共通化したい場合に向く

authentication、logging、header処理等をframework固有codeから分離したい場合や、Rack亖換framework/server間で同じmiddlewareを再利用したいbackend infrastructureに適します。

出典:[2]

導入前の確認

request parsingのlimitと3.2系security fitを運用設定として追従する

READMEはparameter depth、multipart file数、multipart total part数等のlimitを公開しています。CHANGELOGでは2026年の3.2系でRack::Directory、Forwarded header、multipart、Rack::Static/Sendfile等のsecurity hardeningが続いているため、patch更新を止めず、reverse proxyやupload要件に合わせてparser limitを設定してください。mainのgemspecはRuby 2.7.3以上を要求します。

出典:[2][4][3]

参考にした公式資料

  1. [1]rack/rack — GitHub repository(2026-10-06)
  2. [2]Rack — README(2026-10-06)
  3. [3]Rack — rack.gemspec(2026-10-06)
  4. [4]Rack — CHANGELOG(2026-10-06)
  5. [5]Rack — MIT License(2026-10-06)
編集部からの補足

Ruby Web stackの土台に近いlibraryなので、直接APIを大量に使わなくてもRails/Sinatra/Puma等を通じて影響を受けます。特に2026年の3.2系はrequest parsingやstatic/sendfile周辺のsecurity fixが多く、patch versionを固定したまま放置しない運用が重要です。

3ステップで試す

  1. 1

    ソースを取得

    git clone --depth 1 https://github.com/rack/rack.git
  2. 2

    リポジトリへ移動

    cd rack
  3. 3

    公式手順を確認

    READMEのInstallation / Quick Start / Getting Startedにある公式コマンドを続けて実行してください。

    find . -maxdepth 1 -iname 'README*' -exec sed -n '1,220p' {} \; -quit
公式READMEで確認

成長

成長の推移 · 直近30日

5,131 Stars

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

開発アクティビティ

直近90日・週次

Commit(直近30日)
2
Open PR
25

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

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

GitHub Topics

  • ruby
  • rack
  • web
Stars
5,131
Forks
1,688
Watchers
151
Open Issues
13
Contributors
391
所有者種別
Organization
主要言語
Ruby
ライセンス
MIT
リポジトリ最終更新
2026/09/08

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

情報の誤りを報告

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

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