CARVIEW |
Select Language
HTTP/2 302
server: nginx
date: Sat, 23 Aug 2025 04:26:54 GMT
content-type: text/plain; charset=utf-8
content-length: 0
x-archive-redirect-reason: found capture at 20090130012956
location: https://web.archive.org/web/20090130012956/https://github.com/rack/rack-contrib
server-timing: captures_list;dur=1.045750, exclusion.robots;dur=0.031322, exclusion.robots.policy;dur=0.013337, esindex;dur=0.015855, cdx.remote;dur=9.663487, LoadShardBlock;dur=453.389317, PetaboxLoader3.datanode;dur=87.951181, PetaboxLoader3.resolve;dur=127.179334
x-app-server: wwwb-app213
x-ts: 302
x-tr: 508
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=0
set-cookie: wb-p-SERVER=wwwb-app213; path=/
x-location: All
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
HTTP/2 301
server: nginx
date: Sat, 23 Aug 2025 04:26:55 GMT
content-type: text/html; charset=utf-8
content-length: 113
x-archive-orig-server: nginx/0.6.26
x-archive-orig-date: Fri, 30 Jan 2009 01:29:56 GMT
x-archive-orig-connection: close
x-archive-orig-status: 301 Moved Permanently
location: https://web.archive.org/web/20090130012956/https://github.com/rack/rack-contrib/tree/master
x-archive-orig-x-runtime: 139ms
x-archive-orig-cache-control: no-cache
x-archive-orig-content-length: 113
cache-control: max-age=1800
memento-datetime: Fri, 30 Jan 2009 01:29:56 GMT
link: ; rel="original", ; rel="timemap"; type="application/link-format", ; rel="timegate", ; rel="first memento"; datetime="Thu, 29 Jan 2009 17:33:35 GMT", ; rel="prev memento"; datetime="Thu, 29 Jan 2009 17:33:35 GMT", ; rel="memento"; datetime="Fri, 30 Jan 2009 01:29:56 GMT", ; rel="next memento"; datetime="Tue, 31 Mar 2009 18:37:58 GMT", ; rel="last memento"; datetime="Fri, 20 Jun 2025 01:56:34 GMT"
content-security-policy: default-src 'self' 'unsafe-eval' 'unsafe-inline' data: blob: archive.org web.archive.org web-static.archive.org wayback-api.archive.org athena.archive.org analytics.archive.org pragma.archivelab.org wwwb-events.archive.org
x-archive-src: 52_7_20090129220908_crawl103-c/52_7_20090130012700_crawl101.arc.gz
server-timing: captures_list;dur=0.774037, exclusion.robots;dur=0.023598, exclusion.robots.policy;dur=0.010714, esindex;dur=0.012202, cdx.remote;dur=6.650481, LoadShardBlock;dur=96.483549, PetaboxLoader3.datanode;dur=95.038686, PetaboxLoader3.resolve;dur=123.583134, load_resource;dur=156.842379
x-app-server: wwwb-app213
x-ts: 301
x-tr: 298
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=0
x-location: All
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
HTTP/2 302
server: nginx
date: Sat, 23 Aug 2025 04:26:56 GMT
content-type: text/plain; charset=utf-8
content-length: 0
x-archive-redirect-reason: found capture at 20090129173335
location: https://web.archive.org/web/20090129173335/https://github.com/rack/rack-contrib/tree/master
server-timing: captures_list;dur=0.619818, exclusion.robots;dur=0.023326, exclusion.robots.policy;dur=0.010101, esindex;dur=0.011522, cdx.remote;dur=14.434151, LoadShardBlock;dur=894.966425, PetaboxLoader3.datanode;dur=690.390229, PetaboxLoader3.resolve;dur=96.818062
x-app-server: wwwb-app213
x-ts: 302
x-tr: 937
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=1
x-location: All
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
HTTP/2 200
server: nginx
date: Sat, 23 Aug 2025 04:26:56 GMT
content-type: text/html; charset=utf-8
x-archive-orig-server: nginx/0.6.26
x-archive-orig-date: Thu, 29 Jan 2009 17:33:35 GMT
x-archive-orig-connection: close
x-archive-orig-status: 200 OK
x-archive-orig-x-runtime: 132ms
x-archive-orig-etag: "32b8bd4a980c23193e6361c444eda05f"
x-archive-orig-cache-control: private, max-age=0, must-revalidate
x-archive-orig-content-length: 20775
x-archive-guessed-content-type: text/html
x-archive-guessed-charset: utf-8
memento-datetime: Thu, 29 Jan 2009 17:33:35 GMT
link: ; rel="original", ; rel="timemap"; type="application/link-format", ; rel="timegate", ; rel="first memento"; datetime="Fri, 23 Jan 2009 15:05:12 GMT", ; rel="prev memento"; datetime="Fri, 23 Jan 2009 15:05:12 GMT", ; rel="memento"; datetime="Thu, 29 Jan 2009 17:33:35 GMT", ; rel="next memento"; datetime="Thu, 12 Feb 2009 16:12:20 GMT", ; rel="last memento"; datetime="Fri, 31 May 2024 21:30:11 GMT"
content-security-policy: default-src 'self' 'unsafe-eval' 'unsafe-inline' data: blob: archive.org web.archive.org web-static.archive.org wayback-api.archive.org athena.archive.org analytics.archive.org pragma.archivelab.org wwwb-events.archive.org
x-archive-src: 52_7_20090129155259_crawl100-c/52_7_20090129173200_crawl101.arc.gz
server-timing: captures_list;dur=0.682553, exclusion.robots;dur=0.022924, exclusion.robots.policy;dur=0.009436, esindex;dur=0.012171, cdx.remote;dur=12.222856, LoadShardBlock;dur=69.218012, PetaboxLoader3.datanode;dur=107.688822, load_resource;dur=216.891091, PetaboxLoader3.resolve;dur=119.723340
x-app-server: wwwb-app213
x-ts: 200
x-tr: 352
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=0
x-location: All
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
content-encoding: gzip
rack's rack-contrib at master - GitHub
This repository is private.
All pages are served over SSL and all pushing and pulling is done over SSH.
No one may fork, clone, or view it unless they are added as a member.
Every repository with this icon (
) is private.
Every repository with this icon (

This repository is public.
Anyone may fork, clone, or view it.
Every repository with this icon (
) is public.
Every repository with this icon (

Run the following if you haven't already:
gem sources -a https://gems.github.com
Install the gem(s):
sudo gem install rack-rack-contrib
Fork of rtomayko/rack-contrib | |
Description: | Contributed Rack Middleware and Utilities |
Clone URL: |
git://github.com/rack/rack-contrib.git
Give this clone URL to anyone.
git clone git://github.com/rack/rack-contrib.git
|
commit 44322288f263dda0743183529efe4e04a240e76c
tree bede483dcd4f48782fc45383e5fe269adb735a72
parent 38acde6a1d0f1de1c1aa612323a5e99cb8588ba8
tree bede483dcd4f48782fc45383e5fe269adb735a72
parent 38acde6a1d0f1de1c1aa612323a5e99cb8588ba8
name | age | message | |
---|---|---|---|
![]() |
.gitignore | Mon Dec 08 18:47:09 -0800 2008 | Add gemspec for github builds and clean up Rake... [rtomayko] |
![]() |
COPYING | Sat Nov 29 22:53:44 -0800 2008 | boilerplate files; rack/contrib.rb and spec_rac... [rtomayko] |
![]() |
README.rdoc | Wed Jan 14 12:32:39 -0800 2009 | Add Rack::NestedParams; based on Rails UrlEncod... [mislav] |
![]() |
Rakefile | Fri Jan 23 03:31:43 -0800 2009 | 0.9.0 gem release [rtomayko] |
![]() |
lib/ | Fri Jan 23 00:56:33 -0800 2009 | Set proper Content-Length header when wrapping ... [cee-dub] |
![]() |
rack-contrib.gemspec | Fri Jan 23 03:31:43 -0800 2009 | 0.9.0 gem release [rtomayko] |
![]() |
test/ | Fri Jan 23 01:05:20 -0800 2009 | Wrap callback tests in a common context [cee-dub] |
Contributed Rack Middleware and Utilities
This package includes a variety of add-on components for Rack, a Ruby web server interface:
- Rack::ETag - Automatically sets the ETag header on all String bodies.
- Rack::JSONP - Adds JSON-P support by stripping out the callback param and padding the response with the appropriate callback format.
- Rack::LighttpdScriptNameFix - Fixes how lighttpd sets the SCRIPT_NAME and PATH_INFO variables in certain configurations.
- Rack::Locale - Detects the client locale using the Accept-Language request header and sets a rack.locale variable in the environment.
- Rack::MailExceptions - Rescues exceptions raised from the app and sends a useful email with the exception, stacktrace, and contents of the environment.
- Rack::NestedParams - parses form params with subscripts (e.g., * "post[title]=Hello") into a nested/recursive Hash structure (based on Rails’ implementation).
- Rack::PostBodyContentTypeParser - Adds support for JSON request bodies. The Rack parameter hash is populated by deserializing the JSON data provided in the request body when the Content-Type is application/json.
- Rack::ProcTitle - Displays request information in process title ($0) for monitoring/inspection with ps(1).
- Rack::Profiler - Uses ruby-prof to measure request time.
- Rack::Sendfile - Enables X-Sendfile support for bodies that can be served from file.
- Rack::TimeZone - Detects the clients timezone using JavaScript and sets a variable in Rack’s environment with the offset from UTC.
- Rack::Evil - Lets the rack application return a response to the client from any place.
- Rack::Callbacks - Implements DLS for pure before/after filter like Middlewares.
Use
Git is the quickest way to the rack-contrib sources:
git clone git://github.com/rack/rack-contrib.git
Gems are currently available from GitHub clones:
gem install rack-rack-contrib --source=https://gems.github.com/
Requiring ‘rack/contrib’ will add autoloads to the Rack modules for all of the components included. The following example shows what a simple rackup (+config.ru+) file might look like:
require 'rack' require 'rack/contrib' use Rack::Profiler if ENV['RACK_ENV'] == 'development' use Rack::ETag use Rack::MailExceptions run theapp
Links
rack-contrib on GitHub:<github.com/rack/rack-contrib> Rack:<rack.rubyforge.org/> Rack On GitHub:<github.org/rack/rack> rack-devel mailing list:<groups.google.com/group/rack-devel>
This feature is coming soon. Sit tight!