Rainbows! 0.2.0 w/ bare Rev support and AppPool middleware

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.


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
http://mid.gmane.org/[email protected]
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).