Skip to content
bendiken edited this page Apr 19, 2013 · 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::Honeypot acts as a spam trap.
  • Rack::GoogleAnalytics embeds Google Analytics tracking code.
  • Rack::ChromeFrame brings HTML5 and other open web technologies to Internet Explorer.
  • 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
  • Rackamole Observe your web applications in the wild!
  • 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::CanIUse checks if user agents support the HTML/CSS technologies used by your website using the CanIUse database.
  • Rack::Attack A DSL for blocking & throttling abusive clients
    see also Coderack Middlewares
  • ChromeLogger A Ruby library that implements the Chrome Logger spec as Rack middleware

TODO

Clone this wiki locally