From ea4a01df8b1fa29e2088816f4734bb0073eb9380 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Thu, 20 Jan 2011 22:15:12 +0000 Subject: remove support for Sunshowers The WebSocket protocol is still undergoing changes and unused. We won't waste time supporting it until it's finalized and doesn't break HTTP. --- Documentation/comparison.haml | 12 ++++++------ README | 1 - lib/rainbows/const.rb | 6 ------ lib/rainbows/coolio_fiber_spawn.rb | 12 ++++++------ lib/rainbows/process_client.rb | 2 -- lib/rainbows/rev_fiber_spawn.rb | 8 ++++---- lib/rainbows/revactor/client.rb | 1 - 7 files changed, 16 insertions(+), 26 deletions(-) diff --git a/Documentation/comparison.haml b/Documentation/comparison.haml index 89b5d4b..2b3362a 100644 --- a/Documentation/comparison.haml +++ b/Documentation/comparison.haml @@ -278,14 +278,14 @@ %td.app_pool Yes %td.lock No! %td.async Revactor itself - %td.ws Sunshowers + %td.ws no %tr.comp_row %td.mod ThreadPool %td.devfd Yes %td.app_pool Yes %td.lock Yes %td.async standard Ruby - %td.ws Sunshowers + %td.ws no %tr.comp_row %td.mod Coolio %td.devfd Yes @@ -299,7 +299,7 @@ %td.app_pool Yes %td.lock Yes %td.async standard Ruby - %td.ws Sunshowers + %td.ws no %tr.comp_row %td.mod EventMachine %td.devfd Yes @@ -320,21 +320,21 @@ %td.app_pool Yes %td.lock No! %td.async Rainbows::Fiber::IO, Rainbows.sleep - %td.ws Sunshowers + %td.ws no %tr.comp_row %td.mod FiberPool %td.devfd Yes %td.app_pool Yes %td.lock No! %td.async Rainbows::Fiber::IO, Rainbows.sleep - %td.ws Sunshowers + %td.ws no %tr.comp_row %td.mod ActorSpawn %td.devfd no-op %td.app_pool Yes %td.lock Yes %td.async standard Ruby - %td.ws Sunshowers + %td.ws no %tr.comp_row %td.mod NeverBlock %td.devfd Yes diff --git a/README b/README index e921205..ee8ca78 100644 --- a/README +++ b/README @@ -69,7 +69,6 @@ network concurrency. \Rainbows! is mainly designed for the odd things Unicorn sucks at: -* Web Sockets (via {Sunshowers}[http://rainbows.rubyforge.org/sunshowers/]) * 3rd-party APIs (to services outside your control/LAN) * OpenID consumers (to providers outside your control/LAN) * Reverse proxy implementations with editing/censoring diff --git a/lib/rainbows/const.rb b/lib/rainbows/const.rb index 33df05d..559659c 100644 --- a/lib/rainbows/const.rb +++ b/lib/rainbows/const.rb @@ -14,12 +14,6 @@ module Rainbows::Const # "rainbows.autochunk" => false, }) - # client IO object that supports reading and writing directly - # without filtering it through the HTTP chunk parser. - # Maybe we can get this renamed to "rack.io" if it becomes part - # of the official spec, but for now it is "hack.io" - CLIENT_IO = "hack.io".freeze - RACK_INPUT = Unicorn::HttpRequest::RACK_INPUT REMOTE_ADDR = Unicorn::HttpRequest::REMOTE_ADDR end diff --git a/lib/rainbows/coolio_fiber_spawn.rb b/lib/rainbows/coolio_fiber_spawn.rb index 094e18e..52b3e63 100644 --- a/lib/rainbows/coolio_fiber_spawn.rb +++ b/lib/rainbows/coolio_fiber_spawn.rb @@ -2,12 +2,12 @@ require 'rainbows/fiber/coolio' # A combination of the Coolio and FiberSpawn models. This allows Ruby -# 1.9 Fiber-based concurrency for application processing while -# exposing a synchronous execution model and using scalable network -# concurrency provided by Cool.io. A "rack.input" is exposed as well -# being Sunshowers-compatible. Applications are strongly advised to -# wrap all slow IO objects (sockets, pipes) using the -# Rainbows::Fiber::IO or a Cool.io-compatible class whenever possible. +# 1.9 Fiber-based concurrency for application processing while exposing +# a synchronous execution model and using scalable network concurrency +# provided by Cool.io. A streaming "rack.input" is exposed. +# Applications are strongly advised to wrap all slow IO objects +# (sockets, pipes) using the Rainbows::Fiber::IO or a Cool.io-compatible +# class whenever possible. module Rainbows::CoolioFiberSpawn include Rainbows::Base diff --git a/lib/rainbows/process_client.rb b/lib/rainbows/process_client.rb index 2ddc368..bf6d20b 100644 --- a/lib/rainbows/process_client.rb +++ b/lib/rainbows/process_client.rb @@ -6,7 +6,6 @@ module Rainbows::ProcessClient NULL_IO = Unicorn::HttpRequest::NULL_IO RACK_INPUT = Unicorn::HttpRequest::RACK_INPUT - CLIENT_IO = "hack.io".freeze IC = Unicorn::HttpRequest.input_class def process_loop @@ -46,6 +45,5 @@ module Rainbows::ProcessClient def set_input(env, hp) env[RACK_INPUT] = 0 == hp.content_length ? NULL_IO : IC.new(self, hp) - env[CLIENT_IO] = self end end diff --git a/lib/rainbows/rev_fiber_spawn.rb b/lib/rainbows/rev_fiber_spawn.rb index 52ba2cd..434d72c 100644 --- a/lib/rainbows/rev_fiber_spawn.rb +++ b/lib/rainbows/rev_fiber_spawn.rb @@ -6,8 +6,8 @@ Rainbows.const_set(:RevFiberSpawn, Rainbows::CoolioFiberSpawn) # A combination of the Rev and FiberSpawn models. This allows Ruby # 1.9 Fiber-based concurrency for application processing while # exposing a synchronous execution model and using scalable network -# concurrency provided by Rev. A "rack.input" is exposed as well -# being Sunshowers-compatible. Applications are strongly advised to -# wrap all slow IO objects (sockets, pipes) using the -# Rainbows::Fiber::IO or a Rev-compatible class whenever possible. +# concurrency provided by Rev. A streaming "rack.input" is exposed. +# Applications are strongly advised to wrap all slow IO objects +# (sockets, pipes) using the Rainbows::Fiber::IO or a Rev-compatible +# class whenever possible. module Rainbows::RevFiberSpawn; end diff --git a/lib/rainbows/revactor/client.rb b/lib/rainbows/revactor/client.rb index fc095b5..1aabf93 100644 --- a/lib/rainbows/revactor/client.rb +++ b/lib/rainbows/revactor/client.rb @@ -39,7 +39,6 @@ class Rainbows::Revactor::Client def set_input(env, hp) env[RACK_INPUT] = 0 == hp.content_length ? NULL_IO : IC.new(@ts = TeeSocket.new(@client), hp) - env[CLIENT_IO] = @client end def close -- cgit v1.2.3-24-ge0c7