# Rainbows! 0.92.0 - inching towards the pot of gold

**URL:** <https://www.ruby-forum.com/t/rainbows-0-92-0-inching-towards-the-pot-of-gold/188052>\
**Category:** Ruby\
**Created:** [May 5, 2010, 12:50am UTC](https://www.ruby-forum.com/t/rainbows-0-92-0-inching-towards-the-pot-of-gold/188052 "2010-05-05T00:50:42Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![ericw](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/97f17d/32.png) [@ericw](https://www.ruby-forum.com/u/ericw)\
**Post date:** [May 5, 2010, 12:50am UTC](https://www.ruby-forum.com/t/rainbows-0-92-0-inching-towards-the-pot-of-gold/188052/1 "2010-05-05T00:50:42Z")

</div>

Rainbows! is an HTTP server for sleepy Rack applications. It is based  
on  
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.

- [http://rainbows.rubyforge.org/](http://rainbows.rubyforge.org/)
- removed\_email\_address@domain.invalid
- git://git.bogomips.org/rainbows.git

Changes:

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

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