# Rainbows! 0.2.0 w/ bare Rev support and AppPool middleware

**URL:** <https://www.ruby-forum.com/t/rainbows-0-2-0-w-bare-rev-support-and-apppool-middleware/177345>\
**Category:** Ruby\
**Created:** [October 15, 2009, 10:20am UTC](https://www.ruby-forum.com/t/rainbows-0-2-0-w-bare-rev-support-and-apppool-middleware/177345 "2009-10-15T10:20:39Z")\
**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:** [October 15, 2009, 10:20am UTC](https://www.ruby-forum.com/t/rainbows-0-2-0-w-bare-rev-support-and-apppool-middleware/177345/1 "2009-10-15T10:20:39Z")

</div>

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/](http://rainbows.rubyforge.org/)
- removed\_email\_address@domain.invalid
- git://git.bogomips.org/rainbows.git

Changes:

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  
recommended.

[http://rainbows.rubyforge.org/Rainbows/Rev.html](http://rainbows.rubyforge.org/Rainbows/Rev.html)

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  
details.

[http://rainbows.rubyforge.org/Rainbows/AppPool.html](http://rainbows.rubyforge.org/Rainbows/AppPool.html)

Per-client timeouts have been removed, see  
[http://mid.gmane.org/removed\_email\_address@domain.invalid](http://mid.gmane.org/removed_email_address@domain.invalid)  
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).
