Numerous [[Middleware]] components exist in the Rack library itself, as well as the official Rack contributions project.
- JSON-P
- Rack::Cache is suitable as a quick drop-in component to enable HTTP caching.
- Rack::ESI is a small (but still very useful!) subset of ESI (Edge Side Includes).
- CloudKit includes OpenIDFilter, OAuthFilter, and RESTful JSON storage
- Rack::Config – Shared configuration for cooperative middleware.
- Rack::OpenID provides a more HTTPish API around the ruby-openid library.
- Rack::Debug
- Rack::AbstractFormat
- Rack::RespondTo allows triggering different actions based on requested media type.
- Rack::SupportedMediaTypes specify an app’s supported media types.
- Rack::AcceptMediaTypes determine the request’s prefered media type.
- Rack::MultipartRelated parses multipart/related requests and rebuild a simple/merged parameters hash.
- Rack::Heartbeat Add a configurable heartbeat/health-check/ping url to your app
- Rack::Honeypot acts as a spam trap.
- Rack::GoogleAnalytics embeds Google Analytics tracking code.
- Rack::Embed embeds small images via the data-url (base64) if the browser supports it. This reduces http traffic.
- Warden General Rack Authentication Framework
- Rack::StaticFallback bounces or redirects requests to missing static files.
- Rack::Throttle provides logic for rate-limiting incoming HTTP requests to Rack applications.
- Rack::LinkedData implements Linked Data content negotiation.
- SimpleRouter
- Cylon Disallows application indexation by search engines except in production. Rack Middleware and Rails Engine.
- Slogger::Rack::RequestLogger if you want to log on Syslog.
- Rack::Batik::SVG transcodes SVG pictures to JPEG
- Rack::Referrals extracts referring search engine info
- Muster parses some or all of the query string in varying formats into hashes. Helps adding human friendly (not rack/rails nested) query string options to APIs and such.
- Moneta adds Rack::MonetaStore (places key/value store in env, support for per-request caching), Rack::MonetaCookies (allow Moneta to be used to store cookies) and Rack::MonetaRest (expose a key/value store via HTTP/REST)
- RouteDowncaser makes all routing in Rails case-insensitive.
- Rack::Attack A DSL for blocking & throttling abusive clients
- ChromeLogger A Ruby library that implements the Chrome Logger spec as Rack middleware
- Rack::DetectTor Detect Tor exit users
- Rack::RackTorBlock Block access to a rack application from any client accessing from the Tor network
- Rack::Turnout Easily put your Rack apps into maintenance mode
- Rack::CAS Simple CAS client authentication
- Rack::AcornCache Configurable HTTP proxy caching solution
- Rack::Fraction Middleware which lets you to execute arbitrary code just for a certain fraction of requests