[ANN] Rainbows! 0.2.0 w/ bare Rev support and AppPool middleware

Eric Wong normalperson at yhbt.net
Thu Oct 15 04:18:37 EDT 2009

Rainbows! is a 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/
* rainbows-talk at rubyforge.org
* git://git.bogomips.org/rainbows.git


This release adds preliminary Rev support for network
concurrency under Ruby 1.8 and Ruby 1.9.  There are caveats to
this model and reading the RDoc for Rainbows::Rev is


Rainbows::AppPool Rack middleware is now available to limit
application concurrency on a per-process basis independently of
network concurrency.  See the RDoc for this class for further


Per-client timeouts have been removed, see
for the reasoning.

Rack environment changes:

* "rack.multithread" is now only true for models with "Thread"
  in their name.  Enabling thread-safe (but not reentrant) code
  may actually be harmful for Revactor.

* "rainbows.model" is now exposed so the application can easily
  figure out which network concurrency model is in use.

Bugfixes include better shutdown and error handling for all
existing models, OpenBSD compatibility for the per-process
heartbeat (same as found in unicorn v0.93.3).

Eric Wong

More information about the rainbows-talk mailing list