v0.92.0
tag5a167a9c90317eef0120c11830650152405b8a31
object 0619e62285d25763ac1dee8a9aab18da7d39f80e
authorEric Wong <normalperson@yhbt.net>
Tue, 4 May 2010 21:58:12 +0000 (4 14:58 -0700)
Rainbows! 0.92.0 - inching towards the pot of gold

Mostly internal cleanups and small improvements.

The only backwards incompatible change was the addition of the
"client_max_body_size" parameter to limit upload sizes to
prevent DoS.  This defaults to one megabyte (same as nginx), so
any apps relying on the limit-less behavior of previous will
have to configure this in the Unicorn/Rainbows! config file:

      Rainbows! do
# nil for unlimited, or any number in bytes
client_max_body_size nil
      end

The ThreadSpawn and ThreadPool models are now optimized for serving
large static files under Ruby 1.9 using IO.copy_stream[1].

The EventMachine model has always had optimized static file
serving (using EM::Connection#stream_file_data[2]).

The EventMachine model (finally) gets conditionally deferred app
dispatch in a separate thread, as described by Ezra Zygmuntowicz
for Merb, Ebb and Thin[3].

[1] - http://euruko2008.csrug.cz/system/assets/documents/0000/0007/tanaka-IOcopy_stream-euruko2008.pdf
[2] - http://eventmachine.rubyforge.org/EventMachine/Connection.html#M000312
[3] - http://brainspl.at/articles/2008/04/18/deferred-requests-with-merb-ebb-and-thin