summary refs log tree commit homepage
diff options
authorEric Wong <>2011-01-11 16:43:10 -0800
committerEric Wong <>2011-01-11 17:12:21 -0800
commit2eb58a62a5e738c287db8239f4f4e8d1d02ed328 (patch)
parent9caff8ecc7912306366cebb9c57b65ab12fde5ad (diff)
There is one incompatible change: We no longer assume application
authors are crazy and use strangely-cased headers for "Content-Length",
"Transfer-Encoding", and "Range".  This allows us to avoid the
case-insensitivity of Rack::Utils::HeaderHash for a speed boost on the
few apps that already serve thousands of requests/second per-worker.

:Coolio got "async.callback" support like :EventMachine, but it
currently lacks EM::Deferrables which would allow us to call
"succeed"/"fail" callbacks.  This means only one-shot response writes
are supported.

There are numerous internal code cleanups and several bugfixes for
handling partial static file responses.
3 files changed, 5 insertions, 2 deletions
index 671d859..017ae4b 100755
@@ -1,7 +1,7 @@
diff --git a/lib/rainbows/const.rb b/lib/rainbows/const.rb
index d877f87..62610bd 100644
--- a/lib/rainbows/const.rb
+++ b/lib/rainbows/const.rb
@@ -2,7 +2,7 @@
 # :enddoc:
 module Rainbows::Const
   include Unicorn::Const
diff --git a/lib/rainbows/coolio.rb b/lib/rainbows/coolio.rb
index d0b8b2e..59bfde6 100644
--- a/lib/rainbows/coolio.rb
+++ b/lib/rainbows/coolio.rb
@@ -18,6 +18,9 @@ require 'rainbows/coolio_support'
 # allows the Rack application to process data as it arrives.  This
 # means "rack.input" will be fully buffered in memory or to a
 # temporary file before the application is entered.
+# This model is mostly compatible with users of "async.callback" in
+# the Rack environment as long as they do not depend on EventMachine.
 module Rainbows::Coolio
   # :stopdoc:
   # keep-alive timeout scoreboard