Rainbows! 0.92.0 - inching towards the pot of gold

Rainbows! is an HTTP server for sleepy Rack applications. It is based
Unicorn, but designed to handle applications that expect long
request/response times and/or slow clients. For Rack applications not
heavily bound by slow external network dependencies, consider Unicorn
instead as it simpler and easier to debug.


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

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 Z.
for Merb, Ebb and Thin[3].

[1] -
[2] -
[3] -