Rack::Cache is suitable as a quick drop-in component to enable HTTP caching
for Rack-based applications that produce freshness (Expires
,
Cache-Control
) and/or validation (Last-Modified
, ETag
) information.
CHANGES
file
for details.$ sudo gem install rack-cache
Or, from a local working copy:
$ git clone git://github.com/rtomayko/rack-cache.git
$ rake package && sudo rake install
Rack::Cache is implemented as a piece of Rack middleware and can be used
with any Rack-based application. If your application includes a rackup
(.ru
) file or uses Rack::Builder to construct the application pipeline,
simply require
and use
as follows:
require 'rack/cache'
use Rack::Cache,
:verbose => true,
:metastore => 'file:/var/cache/rack/meta',
:entitystore => 'file:/var/cache/rack/body'
run app
Assuming you've designed your backend application to take advantage of HTTP's caching features, no further code or configuration is required for basic caching.
Configuration Options - how to set cache options.
Cache Storage Documentation - detailed information on the various storage implementations available in Rack::Cache and how to choose the one that's best for your application.
Things Caches Do - an illustrated guide to how HTTP gateway caches work with pointers to other useful resources on HTTP caching.
GitHub Repository - get your fork on.
Mailing List - for hackers
and users (rack-cache@groups.google.com
).
FAQ - Frequently Asked Questions about Rack::Cache.
RDoc API Documentation - Mostly worthless if you just want to use Rack::Cache in your application but mildly insightful if you'd like to get a feel for how the system has been put together; I recommend reading the source.
The overall design of Rack::Cache is based largely on the work of the internet standards community. The following resources provide a good starting point for exploring the basic concepts of HTTP caching:
Mark Nottingham's Caching Tutorial, especially the short section on How Web Caches Work
Joe Gregorio's Doing HTTP Caching Right
RFC 2616, especially Section 13, "Caching in HTTP"
Rack::Cache takes (liberally) various concepts from Varnish and Django's cache framework.
Rack::Cache is Copyright © 2008 by Ryan Tomayko and is provided under the MIT license