Rainbows! 2.1.0 - Cool.io, bugfixes and more!

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.

Changes:

Cool.io (new version of Rev) support is explicitly added
(it always worked before). “:Coolio” may be used in place
of “:Rev” anywhere in your Rainbows! config file.

There is a new “keepalive_requests” config directive to limit
the number of requests a single connection may make (default:
100, same as nginx). This may be useful for better
load-balancing characteristics.

The old “Rev” prefixes remain supported as long as Cool.io
remains compatible with Rev (likely forever).

Bug fixes:

  • Rainbows::ThreadTimeout middleware with multiple clients
  • large, pipelined upload errors with Revactor+Coolio(Rev)
  • high CPU usage for maintaining idle keepalive on Fiber
  • needless ThreadPool wakeups
  • request env prematurely cleared keepalive requests,
    breaking some middlewares such as Clogger.
  • “close” not called on body if wrapper and sendfile used together

Various code cleanups, and our RDoc website is JavaScript-free.
See the ChangeLog[1] or git for all changes.

[1] http://rainbows.rubyforge.org/ChangeLog.html