Skip to content
Newer
Older
100644 499 lines (408 sloc) 18.5 KB
1d29767 @laserlemon Add build and dependency status images to README
laserlemon authored Jan 7, 2012
1 = Rack, a modular Ruby webserver interface {<img src="https://secure.travis-ci.org/rack/rack.png" alt="Build Status" />}[http://travis-ci.org/rack/rack] {<img src="https://gemnasium.com/rack/rack.png" alt="Dependency Status" />}[https://gemnasium.com/rack/rack]
d773b8b @chneukirchen Add README and other documentation
chneukirchen authored Mar 3, 2007
2
ed4bba8 @chneukirchen Fix things that should have been fixed before the release *sigh*
chneukirchen authored Mar 3, 2007
3 Rack provides a minimal, modular and adaptable interface for developing
d773b8b @chneukirchen Add README and other documentation
chneukirchen authored Mar 3, 2007
4 web applications in Ruby. By wrapping HTTP requests and responses in
5 the simplest way possible, it unifies and distills the API for web
9bcca54 @chneukirchen Small README fixes
chneukirchen authored Mar 3, 2007
6 servers, web frameworks, and software in between (the so-called
d773b8b @chneukirchen Add README and other documentation
chneukirchen authored Mar 3, 2007
7 middleware) into a single method call.
8
9 The exact details of this are described in the Rack specification,
10 which all Rack applications should conform to.
11
12 == Supported web servers
13
14 The included *handlers* connect all kinds of web servers to Rack:
15 * Mongrel
e6c77df @chneukirchen Merge 'josh/rack-mirror'
chneukirchen authored May 18, 2008
16 * EventedMongrel
0ae1246 @chneukirchen Update emongrel and add swiftiplied mongrel
chneukirchen authored Sep 7, 2008
17 * SwiftipliedMongrel
d773b8b @chneukirchen Add README and other documentation
chneukirchen authored Mar 3, 2007
18 * WEBrick
19 * FCGI
20 * CGI
dcb6081 @chneukirchen Update README and docs
chneukirchen authored Feb 26, 2008
21 * SCGI
22 * LiteSpeed
1266337 @chneukirchen Update README
chneukirchen authored Dec 25, 2008
23 * Thin
dcb6081 @chneukirchen Update README and docs
chneukirchen authored Feb 26, 2008
24
25 These web servers include Rack handlers in their distributions:
26 * Ebb
27 * Fuzed
7901d91 @chneukirchen Update web server list in README
chneukirchen authored Dec 25, 2009
28 * Glassfish v3
7637dab @chneukirchen Update README
chneukirchen authored Apr 25, 2009
29 * Phusion Passenger (which is mod_rack for Apache and for nginx)
c145b9a @tenderlove Revert "Add handlers for Unicorn, Rainbows! and Zbatery"
tenderlove authored Apr 14, 2011
30 * Rainbows!
31 * Unicorn
32 * Zbatery
d773b8b @chneukirchen Add README and other documentation
chneukirchen authored Mar 3, 2007
33
34 Any valid Rack app will run the same on all these handlers, without
35 changing anything.
36
37 == Supported web frameworks
38
39 These frameworks include Rack adapters in their distributions:
7637dab @chneukirchen Update README
chneukirchen authored Apr 25, 2009
40 * Camping
dcb6081 @chneukirchen Update README and docs
chneukirchen authored Feb 26, 2008
41 * Coset
42 * Halcyon
eed24a7 @chneukirchen Update README
chneukirchen authored Aug 21, 2008
43 * Mack
d773b8b @chneukirchen Add README and other documentation
chneukirchen authored Mar 3, 2007
44 * Maveric
dcb6081 @chneukirchen Update README and docs
chneukirchen authored Feb 26, 2008
45 * Merb
d773b8b @chneukirchen Add README and other documentation
chneukirchen authored Mar 3, 2007
46 * Racktools::SimpleApplication
dcb6081 @chneukirchen Update README and docs
chneukirchen authored Feb 26, 2008
47 * Ramaze
1266337 @chneukirchen Update README
chneukirchen authored Dec 25, 2008
48 * Ruby on Rails
7637dab @chneukirchen Update README
chneukirchen authored Apr 25, 2009
49 * Rum
dcb6081 @chneukirchen Update README and docs
chneukirchen authored Feb 26, 2008
50 * Sinatra
1266337 @chneukirchen Update README
chneukirchen authored Dec 25, 2008
51 * Sin
dcb6081 @chneukirchen Update README and docs
chneukirchen authored Feb 26, 2008
52 * Vintage
e9f9f27 @chneukirchen Improve test documentation
chneukirchen authored Aug 9, 2008
53 * Waves
7637dab @chneukirchen Update README
chneukirchen authored Apr 25, 2009
54 * Wee
4e95fe1 @chneukirchen Update README
chneukirchen authored Dec 25, 2009
55 * ... and many others.
dcb6081 @chneukirchen Update README and docs
chneukirchen authored Feb 26, 2008
56
57 Current links to these projects can be found at
7637dab @chneukirchen Update README
chneukirchen authored Apr 25, 2009
58 http://wiki.ramaze.net/Home#other-frameworks
d773b8b @chneukirchen Add README and other documentation
chneukirchen authored Mar 3, 2007
59
60 == Available middleware
61
62 Between the server and the framework, Rack can be customized to your
63 applications needs using middleware, for example:
64 * Rack::URLMap, to route to multiple applications inside the same process.
253cb49 @chneukirchen Last-minute details
chneukirchen authored Mar 3, 2007
65 * Rack::CommonLogger, for creating Apache-style logfiles.
d773b8b @chneukirchen Add README and other documentation
chneukirchen authored Mar 3, 2007
66 * Rack::ShowException, for catching unhandled exceptions and
253cb49 @chneukirchen Last-minute details
chneukirchen authored Mar 3, 2007
67 presenting them in a nice and helpful way with clickable backtrace.
d773b8b @chneukirchen Add README and other documentation
chneukirchen authored Mar 3, 2007
68 * Rack::File, for serving static files.
dcb6081 @chneukirchen Update README and docs
chneukirchen authored Feb 26, 2008
69 * ...many others!
d773b8b @chneukirchen Add README and other documentation
chneukirchen authored Mar 3, 2007
70
71 All these components use the same interface, which is described in
eed24a7 @chneukirchen Update README
chneukirchen authored Aug 21, 2008
72 detail in the Rack specification. These optional components can be
73 used in any way you wish.
d773b8b @chneukirchen Add README and other documentation
chneukirchen authored Mar 3, 2007
74
75 == Convenience
76
77 If you want to develop outside of existing frameworks, implement your
78 own ones, or develop middleware, Rack provides many helpers to create
79 Rack applications quickly and without doing the same web stuff all
80 over:
81 * Rack::Request, which also provides query string parsing and
82 multipart handling.
83 * Rack::Response, for convenient generation of HTTP replies and
84 cookie handling.
85 * Rack::MockRequest and Rack::MockResponse for efficient and quick
9bcca54 @chneukirchen Small README fixes
chneukirchen authored Mar 3, 2007
86 testing of Rack application without real HTTP round-trips.
d773b8b @chneukirchen Add README and other documentation
chneukirchen authored Mar 3, 2007
87
0b601c5 @chneukirchen Update README
chneukirchen authored Jan 5, 2009
88 == rack-contrib
89
90 The plethora of useful middleware created the need for a project that
91 collects fresh Rack middleware. rack-contrib includes a variety of
3568c0d @chneukirchen Last minute README fixes
chneukirchen authored Jan 6, 2009
92 add-on components for Rack and it is easy to contribute new modules.
0b601c5 @chneukirchen Update README
chneukirchen authored Jan 5, 2009
93
94 * http://github.com/rack/rack-contrib
95
d773b8b @chneukirchen Add README and other documentation
chneukirchen authored Mar 3, 2007
96 == rackup
97
98 rackup is a useful tool for running Rack applications, which uses the
99 Rack::Builder DSL to configure middleware and build up applications
100 easily.
101
102 rackup automatically figures out the environment it is run in, and
103 runs your application as FastCGI, CGI, or standalone with Mongrel or
104 WEBrick---all from the same configuration.
105
106 == Quick start
107
108 Try the lobster!
109
110 Either with the embedded WEBrick starter:
111
e256ec6 @chneukirchen Update README
chneukirchen authored May 16, 2007
112 ruby -Ilib lib/rack/lobster.rb
d773b8b @chneukirchen Add README and other documentation
chneukirchen authored Mar 3, 2007
113
114 Or with rackup:
115
d4906ef @josh Tell people to report bugs to lighthouse
josh authored Dec 10, 2009
116 bin/rackup -Ilib example/lobster.ru
d773b8b @chneukirchen Add README and other documentation
chneukirchen authored Mar 3, 2007
117
118 By default, the lobster is found at http://localhost:9292.
119
120 == Installing with RubyGems
121
b6e61e3 @raggi Update links and correct a spelling error
raggi authored May 22, 2011
122 A Gem of Rack is available at rubygems.org. You can install it with:
d773b8b @chneukirchen Add README and other documentation
chneukirchen authored Mar 3, 2007
123
124 gem install rack
125
126 I also provide a local mirror of the gems (and development snapshots)
127 at my site:
128
d894ded @chneukirchen Add trailing slash to the alternative gem server
chneukirchen authored Dec 30, 2008
129 gem install rack --source http://chneukirchen.org/releases/gems/
d773b8b @chneukirchen Add README and other documentation
chneukirchen authored Mar 3, 2007
130
540dc3f @chneukirchen Changes to get lighttpd setup and running when rake fulltest is run; …
chneukirchen authored Mar 17, 2008
131 == Running the tests
132
7e5d611 @chneukirchen Last README updates
chneukirchen authored Jun 13, 2010
133 Testing Rack requires the bacon testing framework:
540dc3f @chneukirchen Changes to get lighttpd setup and running when rake fulltest is run; …
chneukirchen authored Mar 17, 2008
134
7e5d611 @chneukirchen Last README updates
chneukirchen authored Jun 13, 2010
135 gem install bacon
540dc3f @chneukirchen Changes to get lighttpd setup and running when rake fulltest is run; …
chneukirchen authored Mar 17, 2008
136
e9f9f27 @chneukirchen Improve test documentation
chneukirchen authored Aug 9, 2008
137 There are two rake-based test tasks:
138
139 rake test tests all the fast tests (no Handlers or Adapters)
140 rake fulltest runs all the tests
141
142 The fast testsuite has no dependencies outside of the core Ruby
7e5d611 @chneukirchen Last README updates
chneukirchen authored Jun 13, 2010
143 installation and bacon.
e9f9f27 @chneukirchen Improve test documentation
chneukirchen authored Aug 9, 2008
144
eed24a7 @chneukirchen Update README
chneukirchen authored Aug 21, 2008
145 To run the test suite completely, you need:
e9f9f27 @chneukirchen Improve test documentation
chneukirchen authored Aug 9, 2008
146
147 * fcgi
148 * memcache-client
7637dab @chneukirchen Update README
chneukirchen authored Apr 25, 2009
149 * mongrel
150 * thin
e9f9f27 @chneukirchen Improve test documentation
chneukirchen authored Aug 9, 2008
151
152 The full set of tests test FCGI access with lighttpd (on port
153 9203) so you will need lighttpd installed as well as the FCGI
154 libraries and the fcgi gem:
540dc3f @chneukirchen Changes to get lighttpd setup and running when rake fulltest is run; …
chneukirchen authored Mar 17, 2008
155
156 Download and install lighttpd:
157
158 http://www.lighttpd.net/download
159
160 Installing the FCGI libraries:
161
162 curl -O http://www.fastcgi.com/dist/fcgi-2.4.0.tar.gz
163 tar xzvf fcgi-2.4.0.tar.gz
164 cd fcgi-2.4.0
165 ./configure --prefix=/usr/local
166 make
167 sudo make install
168 cd ..
169
170 Installing the Ruby fcgi gem:
171
172 gem install fcgi
173
e9f9f27 @chneukirchen Improve test documentation
chneukirchen authored Aug 9, 2008
174 Furthermore, to test Memcache sessions, you need memcached (will be
175 run on port 11211) and memcache-client installed.
540dc3f @chneukirchen Changes to get lighttpd setup and running when rake fulltest is run; …
chneukirchen authored Mar 17, 2008
176
d773b8b @chneukirchen Add README and other documentation
chneukirchen authored Mar 3, 2007
177 == History
178
179 * March 3rd, 2007: First public release 0.1.
180
e256ec6 @chneukirchen Update README
chneukirchen authored May 16, 2007
181 * May 16th, 2007: Second public release 0.2.
e5fa2f9 @chneukirchen Integrate patches
chneukirchen authored Mar 6, 2007
182 * HTTP Basic authentication.
cb306d7 @chneukirchen Fix Rack::Session::Cookie
chneukirchen authored Mar 10, 2007
183 * Cookie Sessions.
e276c2d @chneukirchen Integrate Rack::Static
chneukirchen authored Mar 11, 2007
184 * Static file handler.
e256ec6 @chneukirchen Update README
chneukirchen authored May 16, 2007
185 * Improved Rack::Request.
186 * Improved Rack::Response.
187 * Added Rack::ShowStatus, for better default error messages.
188 * Bug fixes in the Camping adapter.
189 * Removed Rails adapter, was too alpha.
e5fa2f9 @chneukirchen Integrate patches
chneukirchen authored Mar 6, 2007
190
dcb6081 @chneukirchen Update README and docs
chneukirchen authored Feb 26, 2008
191 * February 26th, 2008: Third public release 0.3.
cdab8c7 @chneukirchen Add LiteSpeed handler
chneukirchen authored Jul 12, 2007
192 * LiteSpeed handler, by Adrian Madrid.
4610a60 @chneukirchen Add SCGI handler, by Jeremy Evans
chneukirchen authored Jan 25, 2008
193 * SCGI handler, by Jeremy Evans.
6908a8f @chneukirchen Update AUTHORS and thanks
chneukirchen authored Nov 15, 2007
194 * Pool sessions, by blink.
d2cdb24 @chneukirchen Minor tweaks in blink's code
chneukirchen authored Nov 18, 2007
195 * OpenID authentication, by blink.
196 * :Port and :File options for opening FastCGI sockets, by blink.
197 * Last-Modified HTTP header for Rack::File, by blink.
dcb6081 @chneukirchen Update README and docs
chneukirchen authored Feb 26, 2008
198 * Rack::Builder#use now accepts blocks, by Corey Jewett.
199 (See example/protectedlobster.ru)
200 * HTTP status 201 can contain a Content-Type and a body now.
201 * Many bugfixes, especially related to Cookie handling.
cdab8c7 @chneukirchen Add LiteSpeed handler
chneukirchen authored Jul 12, 2007
202
ec20b05 @chneukirchen Cosmetics
chneukirchen authored Aug 21, 2008
203 * August 21st, 2008: Fourth public release 0.4.
eed24a7 @chneukirchen Update README
chneukirchen authored Aug 21, 2008
204 * New middleware, Rack::Deflater, by Christoffer Sawicki.
205 * OpenID authentication now needs ruby-openid 2.
a9665a0 @chneukirchen Run Rack::Session::Memcache tests in fulltest only
chneukirchen authored Mar 20, 2008
206 * New Memcache sessions, by blink.
eed24a7 @chneukirchen Update README
chneukirchen authored Aug 21, 2008
207 * Explicit EventedMongrel handler, by Joshua Peek <josh@joshpeek.com>
17d555b @chneukirchen Rack::Reloader is not loaded in rackup development mode anymore
chneukirchen authored Mar 20, 2008
208 * Rack::Reloader is not loaded in rackup development mode.
eed24a7 @chneukirchen Update README
chneukirchen authored Aug 21, 2008
209 * rackup can daemonize with -D.
210 * Many bugfixes, especially for pool sessions, URLMap, thread safety
211 and tempfile handling.
212 * Improved tests.
213 * Rack moved to Git.
e327c85 @chneukirchen Update History
chneukirchen authored Mar 18, 2008
214
d7f256b @chneukirchen Set release date
chneukirchen authored Jan 6, 2009
215 * January 6th, 2009: Fifth public release 0.9.
0b601c5 @chneukirchen Update README
chneukirchen authored Jan 5, 2009
216 * Rack is now managed by the Rack Core Team.
3568c0d @chneukirchen Last minute README fixes
chneukirchen authored Jan 6, 2009
217 * Rack::Lint is stricter and follows the HTTP RFCs more closely.
0b601c5 @chneukirchen Update README
chneukirchen authored Jan 5, 2009
218 * Added ConditionalGet middleware.
219 * Added ContentLength middleware.
220 * Added Deflater middleware.
221 * Added Head middleware.
222 * Added MethodOverride middleware.
223 * Rack::Mime now provides popular MIME-types and their extension.
224 * Mongrel Header now streams.
225 * Added Thin handler.
226 * Official support for swiftiplied Mongrel.
227 * Secure cookies.
228 * Made HeaderHash case-preserving.
229 * Many bugfixes and small improvements.
230
84245c6 @chneukirchen Fix directory traversal exploits in Rack::File and Rack::Directory
chneukirchen authored Jan 9, 2009
231 * January 9th, 2009: Sixth public release 0.9.1.
232 * Fix directory traversal exploits in Rack::File and Rack::Directory.
233
7951881 @chneukirchen Last minute updates
chneukirchen authored Apr 25, 2009
234 * April 25th, 2009: Seventh public release 1.0.0.
235 * SPEC change: Rack::VERSION has been pushed to [1,0].
7637dab @chneukirchen Update README
chneukirchen authored Apr 25, 2009
236 * SPEC change: header values must be Strings now, split on "\n".
7951881 @chneukirchen Last minute updates
chneukirchen authored Apr 25, 2009
237 * SPEC change: Content-Length can be missing, in this case chunked transfer
238 encoding is used.
239 * SPEC change: rack.input must be rewindable and support reading into
240 a buffer, wrap with Rack::RewindableInput if it isn't.
241 * SPEC change: rack.session is now specified.
242 * SPEC change: Bodies can now additionally respond to #to_path with
243 a filename to be served.
7637dab @chneukirchen Update README
chneukirchen authored Apr 25, 2009
244 * NOTE: String bodies break in 1.9, use an Array consisting of a
245 single String instead.
246 * New middleware Rack::Lock.
247 * New middleware Rack::ContentType.
248 * Rack::Reloader has been rewritten.
249 * Major update to Rack::Auth::OpenID.
250 * Support for nested parameter parsing in Rack::Response.
251 * Support for redirects in Rack::Response.
252 * HttpOnly cookie support in Rack::Response.
253 * The Rakefile has been rewritten.
254 * Many bugfixes and small improvements.
255
c765e7b @chneukirchen Update README for 1.0.1
chneukirchen authored Oct 18, 2009
256 * October 18th, 2009: Eighth public release 1.0.1.
257 * Bump remainder of rack.versions.
258 * Support the pure Ruby FCGI implementation.
259 * Fix for form names containing "=": split first then unescape components
260 * Fixes the handling of the filename parameter with semicolons in names.
261 * Add anchor to nested params parsing regexp to prevent stack overflows
262 * Use more compatible gzip write api instead of "<<".
263 * Make sure that Reloader doesn't break when executed via ruby -e
264 * Make sure WEBrick respects the :Host option
265 * Many Ruby 1.9 fixes.
266
e3bc547 @chneukirchen It's 2010 now.
chneukirchen authored Jan 6, 2010
267 * January 3rd, 2010: Ninth public release 1.1.0.
4e95fe1 @chneukirchen Update README
chneukirchen authored Dec 25, 2009
268 * Moved Auth::OpenID to rack-contrib.
269 * SPEC change that relaxes Lint slightly to allow subclasses of the
270 required types
ae7a6eb @josh Prepare release notes for 1.1
josh authored Dec 24, 2009
271 * SPEC change to document rack.input binary mode in greator detail
4e95fe1 @chneukirchen Update README
chneukirchen authored Dec 25, 2009
272 * SPEC define optional rack.logger specification
99acee3 @josh Add previous change to changelog
josh authored Dec 26, 2009
273 * File servers support X-Cascade header
ae7a6eb @josh Prepare release notes for 1.1
josh authored Dec 25, 2009
274 * Imported Config middleware
275 * Imported ETag middleware
276 * Imported Runtime middleware
277 * Imported Sendfile middleware
278 * New Logger and NullLogger middlewares
4e95fe1 @chneukirchen Update README
chneukirchen authored Dec 25, 2009
279 * Added mime type for .ogv and .manifest.
9ce4c79 @josh Note nosqueeze change
josh authored Dec 26, 2009
280 * Don't squeeze PATH_INFO slashes
4e95fe1 @chneukirchen Update README
chneukirchen authored Dec 25, 2009
281 * Use Content-Type to determine POST params parsing
282 * Update Rack::Utils::HTTP_STATUS_CODES hash
283 * Add status code lookup utility
284 * Response should call #to_i on the status
ae7a6eb @josh Prepare release notes for 1.1
josh authored Dec 25, 2009
285 * Add Request#user_agent
286 * Request#host knows about forwared host
4e95fe1 @chneukirchen Update README
chneukirchen authored Dec 25, 2009
287 * Return an empty string for Request#host if HTTP_HOST and
288 SERVER_NAME are both missing
289 * Allow MockRequest to accept hash params
290 * Optimizations to HeaderHash
291 * Refactored rackup into Rack::Server
292 * Added Utils.build_nested_query to complement Utils.parse_nested_query
293 * Added Utils::Multipart.build_multipart to complement
294 Utils::Multipart.parse_multipart
295 * Extracted set and delete cookie helpers into Utils so they can be
296 used outside Response
297 * Extract parse_query and parse_multipart in Request so subclasses
298 can change their behavior
299 * Enforce binary encoding in RewindableInput
300 * Set correct external_encoding for handlers that don't use RewindableInput
ae7a6eb @josh Prepare release notes for 1.1
josh authored Dec 25, 2009
301
7e5d611 @chneukirchen Last README updates
chneukirchen authored Jun 13, 2010
302 * June 13th, 2010: Tenth public release 1.2.0.
4bfb6fc @chneukirchen Update README and gemspec
chneukirchen authored Jun 12, 2010
303 * Removed Camping adapter: Camping 2.0 supports Rack as-is
304 * Removed parsing of quoted values
305 * Add Request.trace? and Request.options?
306 * Add mime-type for .webm and .htc
307 * Fix HTTP_X_FORWARDED_FOR
308 * Various multipart fixes
7e5d611 @chneukirchen Last README updates
chneukirchen authored Jun 13, 2010
309 * Switch test suite to bacon
4bfb6fc @chneukirchen Update README and gemspec
chneukirchen authored Jun 12, 2010
310
526b8e5 @chneukirchen Prepare 1.2.1
chneukirchen authored Jun 15, 2010
311 * June 15th, 2010: Eleventh public release 1.2.1.
312 * Make CGI handler rewindable
313 * Rename spec/ to test/ to not conflict with SPEC on lesser
314 operating systems
315
a1eb9c2 @chneukirchen Update README
chneukirchen authored Mar 13, 2011
316 * March 13th, 2011: Twelfth public release 1.2.2/1.1.2.
317 * Security fix in Rack::Auth::Digest::MD5: when authenticator
318 returned nil, permission was granted on empty password.
319
a50dda5 @raggi Thirteenth public release, 1.3.0
raggi authored May 22, 2011
320 * May 22nd, 2011: Thirteenth public release 1.3.0
3e0e7e6 @raggi Update readme with some changelogs
raggi authored May 3, 2011
321 * Various performance optimizations
322 * Various multipart fixes
323 * Various multipart refactors
324 * Infinite loop fix for multipart
325 * Test coverage for Rack::Server returns
326 * Allow files with '..', but not path components that are '..'
327 * rackup accepts handler-specific options on the command line
328 * Request#params no longer merges POST into GET (but returns the same)
329 * Use URI.encode_www_form_component instead. Use core methods for escaping.
330 * Allow multi-line comments in the config file
331 * Bug L#94 reported by Nikolai Lugovoi, query parameter unescaping.
332 * Rack::Response now deletes Content-Length when appropriate
333 * Rack::Deflater now supports streaming
334 * Improved Rack::Handler loading and searching
335 * Support for the PATCH verb
686ee0d @raggi Update README changelog
raggi authored May 22, 2011
336 * env['rack.session.options'] now contains session options
337 * Cookies respect renew
338 * Session middleware uses SecureRandom.hex
3e0e7e6 @raggi Update readme with some changelogs
raggi authored May 3, 2011
339
ecaec50 @raggi Update for 1.2.3 release
raggi authored May 23, 2011
340 * May 22nd, 2011: Fourteenth public release 1.2.3
341 * Pulled in relevant bug fixes from 1.3
342 * Fixed 1.8.6 support
343
a315465 @raggi Update readme pending patch release
raggi authored Jul 13, 2011
344 * July 13, 2011: Fifteenth public release 1.3.1
6d1bf83 @rkh update changes
rkh authored Jun 29, 2011
345 * Fix 1.9.1 support
346 * Fix JRuby support
7e9dc51 @rkh prepare readme for 1.3.1
rkh authored Jun 29, 2011
347 * Properly handle $KCODE in Rack::Utils.escape
348 * Make method_missing/respond_to behavior consistent for Rack::Lock,
349 Rack::Auth::Digest::Request and Rack::Multipart::UploadedFile
350 * Reenable passing rack.session to session middleware
351 * Rack::CommonLogger handles streaming responses correctly
352 * Rack::MockResponse calls close on the body object
a315465 @raggi Update readme pending patch release
raggi authored Jul 13, 2011
353 * Fix a DOS vector from MRI stdlib backport
7e9dc51 @rkh prepare readme for 1.3.1
rkh authored Jun 29, 2011
354
30fb044 @raggi Update for the 1.3.2 release
raggi authored Jul 16, 2011
355 * July 16, 2011: Sixteenth public release 1.3.2
356 * Fix for Rails and rack-test, Rack::Utils#escape calls to_s
357
f91a6ed @rkh update changes for 1.3.3
rkh authored Sep 7, 2011
358 * Not Yet Released: Seventeenth public release 1.3.3
359 * Fix bug with broken query parameters in Rack::ShowExceptions
360 * Rack::Request#cookies no longer swallows exceptions on broken input
361 * Prevents XSS attacks enabled by bug in Ruby 1.8's regexp engine
362 * Rack::ConditionalGet handles broken If-Modified-Since helpers
363
fb0d0d4 @raggi Add the 1.2.4 release
raggi authored Sep 16, 2011
364 * September 16, 2011: Eighteenth public release 1.2.4
365 * Fix a bug with MRI regex engine to prevent XSS by malformed unicode
366
cf140e3 @raggi Correct 1.3.4 release message
raggi authored Oct 1, 2011
367 * October 1, 2011: Nineteenth public release 1.3.4
72916e4 @raggi Update README for the 1.3.4 release
raggi authored Oct 1, 2011
368 * Backport security fix from 1.9.3, also fixes some roundtrip issues in URI
369 * Small documentation update
370 * Fix an issue where BodyProxy could cause an infinite recursion
371 * Add some supporting files for travis-ci
372
2b4216e @raggi Add release note for 1.3.5
raggi authored Oct 17, 2011
373 * October 17, 2011: Twentieth public release 1.3.5
374 * Fix annoying warnings caused by the backport in 1.3.4
375
e932c58 @raggi Update release notes
raggi authored Dec 27, 2011
376 * December 28th, 2011: Twenty fourth public release 1.4.0
d8a71c8 @raggi Fix tests for 1.8.7
raggi authored Dec 21, 2011
377 * Ruby 1.8.6 support has officially been dropped. Not all tests pass.
5aaf1bb @rkh note changes that have not been backported
rkh authored Jun 29, 2011
378 * Raise sane error messages for broken config.ru
379 * Allow combining run and map in a config.ru
92e5aef @rkh update changelog for 1.4.0
rkh authored Sep 7, 2011
380 * Rack::ContentType will not set Content-Type for responses without a body
381 * Status code 205 does not send a response body
382 * Rack::Response::Helpers will not rely on instance variables
72916e4 @raggi Update README for the 1.3.4 release
raggi authored Oct 1, 2011
383 * Rack::Utils.build_query no longer outputs '=' for nil query values
7b5af22 @raggi Update Changelog in the README
raggi authored Dec 27, 2011
384 * Various mime types added
385 * Rack::MockRequest now supports HEAD
386 * Rack::Directory now supports files that contain RFC3986 reserved chars
387 * Rack::File now only supports GET and HEAD requests
388 * Rack::Server#start now passes the block to Rack::Handler::<h>#run
389 * Rack::Static now supports an index option
390 * Added the Teapot status code
391 * rackup now defaults to Thin instead of Mongrel (if installed)
392 * Support added for HTTP_X_FORWARDED_SCHEME
393 * Numerous bug fixes, including many fixes for new and alternate rubies
5aaf1bb @rkh note changes that have not been backported
rkh authored Jun 29, 2011
394
f6b11a0 @raggi Prep for 1.4.1
raggi authored Jan 22, 2012
395 * January 22nd, 2012: Twenty fifth public release 1.4.1
396 * Alter the keyspace limit calculations to reduce issues with nested params
c87c029 @kyledrake Trivial readme fixes to 1.4.1 release history
kyledrake authored Jan 23, 2012
397 * Add a workaround for multipart parsing where files contain unescaped "%"
f6b11a0 @raggi Prep for 1.4.1
raggi authored Jan 23, 2012
398 * Added Rack::Response::Helpers#method_not_allowed? (code 405)
c87c029 @kyledrake Trivial readme fixes to 1.4.1 release history
kyledrake authored Jan 23, 2012
399 * Rack::File now returns 404 for illegal directory traversals
400 * Rack::File now returns 405 for illegal methods (non HEAD/GET)
f6b11a0 @raggi Prep for 1.4.1
raggi authored Jan 23, 2012
401 * Rack::Cascade now catches 405 by default, as well as 404
402 * Cookies missing '--' no longer cause an exception to be raised
403 * Various style changes and documentation spelling errors
c87c029 @kyledrake Trivial readme fixes to 1.4.1 release history
kyledrake authored Jan 23, 2012
404 * Rack::BodyProxy always ensures to execute its block
f6b11a0 @raggi Prep for 1.4.1
raggi authored Jan 23, 2012
405 * Additional test coverage around cookies and secrets
406 * Rack::Session::Cookie can now be supplied either secret or old_secret
407 * Tests are no longer dependent on set order
408 * Rack::Static no longer defaults to serving index files
409 * Rack.release was fixed
410
d773b8b @chneukirchen Add README and other documentation
chneukirchen authored Mar 3, 2007
411 == Contact
412
d4906ef @josh Tell people to report bugs to lighthouse
josh authored Dec 11, 2009
413 Please post bugs, suggestions and patches to
4bfb6fc @chneukirchen Update README and gemspec
chneukirchen authored Jun 12, 2010
414 the bug tracker at <http://github.com/rack/rack/issues>.
eed24a7 @chneukirchen Update README
chneukirchen authored Aug 21, 2008
415
416 Mailing list archives are available at
ec20b05 @chneukirchen Cosmetics
chneukirchen authored Aug 21, 2008
417 <http://groups.google.com/group/rack-devel>.
d773b8b @chneukirchen Add README and other documentation
chneukirchen authored Mar 3, 2007
418
7637dab @chneukirchen Update README
chneukirchen authored Apr 25, 2009
419 Git repository (send Git patches to the mailing list):
1266337 @chneukirchen Update README
chneukirchen authored Dec 25, 2008
420 * http://github.com/rack/rack
4bfb6fc @chneukirchen Update README and gemspec
chneukirchen authored Jun 12, 2010
421 * http://git.vuxu.org/cgi-bin/gitweb.cgi?p=rack-github.git
d773b8b @chneukirchen Add README and other documentation
chneukirchen authored Mar 3, 2007
422
253cb49 @chneukirchen Last-minute details
chneukirchen authored Mar 3, 2007
423 You are also welcome to join the #rack channel on irc.freenode.net.
d773b8b @chneukirchen Add README and other documentation
chneukirchen authored Mar 3, 2007
424
7fed4c7 @chneukirchen Update thanks
chneukirchen authored Jan 5, 2009
425 == Thanks
d773b8b @chneukirchen Add README and other documentation
chneukirchen authored Mar 3, 2007
426
0b601c5 @chneukirchen Update README
chneukirchen authored Jan 5, 2009
427 The Rack Core Team, consisting of
428
429 * Christian Neukirchen (chneukirchen)
430 * James Tucker (raggi)
431 * Josh Peek (josh)
432 * Michael Fellinger (manveru)
433 * Ryan Tomayko (rtomayko)
434 * Scytrin dai Kinthra (scytrin)
b82e4f0 @rkh update core team list
rkh authored Jun 16, 2011
435 * Aaron Patterson (tenderlove)
436 * Konstantin Haase (rkh)
0b601c5 @chneukirchen Update README
chneukirchen authored Jan 5, 2009
437
438 would like to thank:
439
cdab8c7 @chneukirchen Add LiteSpeed handler
chneukirchen authored Jul 12, 2007
440 * Adrian Madrid, for the LiteSpeed handler.
eed24a7 @chneukirchen Update README
chneukirchen authored Aug 21, 2008
441 * Christoffer Sawicki, for the first Rails adapter and Rack::Deflater.
e5fa2f9 @chneukirchen Integrate patches
chneukirchen authored Mar 6, 2007
442 * Tim Fletcher, for the HTTP authentication code.
6908a8f @chneukirchen Update AUTHORS and thanks
chneukirchen authored Nov 15, 2007
443 * Luc Heinrich for the Cookie sessions, the static file handler and bugfixes.
d773b8b @chneukirchen Add README and other documentation
chneukirchen authored Mar 3, 2007
444 * Armin Ronacher, for the logo and racktools.
4bfb6fc @chneukirchen Update README and gemspec
chneukirchen authored Jun 12, 2010
445 * Alex Beregszaszi, Alexander Kahn, Anil Wadghule, Aredridel, Ben
446 Alpert, Dan Kubb, Daniel Roethlisberger, Matt Todd, Tom Robinson,
447 Phil Hagelberg, S. Brent Faulkner, Bosko Milekic, Daniel Rodríguez
448 Troitiño, Genki Takiuchi, Geoffrey Grosenbach, Julien Sanchez, Kamal
449 Fariz Mahyuddin, Masayoshi Takahashi, Patrick Aljordm, Mig, Kazuhiro
450 Nishiyama, Jon Bardin, Konstantin Haase, Larry Siden, Matias
451 Korhonen, Sam Ruby, Simon Chiang, Tim Connor, Timur Batyrshin, and
452 Zach Brock for bug fixing and other improvements.
4e95fe1 @chneukirchen Update README
chneukirchen authored Dec 25, 2009
453 * Eric Wong, Hongli Lai, Jeremy Kemper for their continuous support
454 and API improvements.
455 * Yehuda Katz and Carl Lerche for refactoring rackup.
7637dab @chneukirchen Update README
chneukirchen authored Apr 25, 2009
456 * Brian Candler, for Rack::ContentType.
457 * Graham Batty, for improved handler loading.
e327c85 @chneukirchen Update History
chneukirchen authored Mar 18, 2008
458 * Stephen Bannasch, for bug reports and documentation.
e256ec6 @chneukirchen Update README
chneukirchen authored May 16, 2007
459 * Gary Wright, for proposing a better Rack::Response interface.
e06975b @chneukirchen Make Rack::Response possibly close the body
chneukirchen authored May 31, 2007
460 * Jonathan Buch, for improvements regarding Rack::Response.
6908a8f @chneukirchen Update AUTHORS and thanks
chneukirchen authored Nov 15, 2007
461 * Armin Röhrl, for tracking down bugs in the Cookie generator.
3568c0d @chneukirchen Last minute README fixes
chneukirchen authored Jan 6, 2009
462 * Alexander Kellett for testing the Gem and reviewing the announcement.
d773b8b @chneukirchen Add README and other documentation
chneukirchen authored Mar 3, 2007
463 * Marcus Rückert, for help with configuring and debugging lighttpd.
464 * The WSGI team for the well-done and documented work they've done and
465 Rack builds up on.
b6e61e3 @raggi Update links and correct a spelling error
raggi authored May 23, 2011
466 * All bug reporters and patch contributors not mentioned above.
d773b8b @chneukirchen Add README and other documentation
chneukirchen authored Mar 3, 2007
467
468 == Copyright
469
73a6b50 @chneukirchen Update copyright messages
chneukirchen authored Jan 3, 2010
470 Copyright (C) 2007, 2008, 2009, 2010 Christian Neukirchen <http://purl.org/net/chneukirchen>
d773b8b @chneukirchen Add README and other documentation
chneukirchen authored Mar 3, 2007
471
472 Permission is hereby granted, free of charge, to any person obtaining a copy
473 of this software and associated documentation files (the "Software"), to
474 deal in the Software without restriction, including without limitation the
475 rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
476 sell copies of the Software, and to permit persons to whom the Software is
477 furnished to do so, subject to the following conditions:
478
479 The above copyright notice and this permission notice shall be included in
480 all copies or substantial portions of the Software.
481
482 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
483 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
484 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
d4906ef @josh Tell people to report bugs to lighthouse
josh authored Dec 11, 2009
485 THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
d773b8b @chneukirchen Add README and other documentation
chneukirchen authored Mar 3, 2007
486 IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
487 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
488
489 == Links
490
491 Rack:: <http://rack.rubyforge.org/>
0b601c5 @chneukirchen Update README
chneukirchen authored Jan 5, 2009
492 Official Rack repositories:: <http://github.com/rack>
b6e61e3 @raggi Update links and correct a spelling error
raggi authored May 23, 2011
493 Rack Bug Tracking:: <http://github.com/rack/rack/issues>
eed24a7 @chneukirchen Update README
chneukirchen authored Aug 21, 2008
494 rack-devel mailing list:: <http://groups.google.com/group/rack-devel>
b6e61e3 @raggi Update links and correct a spelling error
raggi authored May 23, 2011
495 Rack's Rubyforge project:: <http://rubyforge.org/projects/rack>
d773b8b @chneukirchen Add README and other documentation
chneukirchen authored Mar 3, 2007
496
497 Christian Neukirchen:: <http://chneukirchen.org/>
498
Something went wrong with that request. Please try again.