Skip to content
Ponomarev Ilya edited this page Sep 2, 2018 · 96 revisions

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