1 # -*- encoding: binary -*-
2 require 'rainbows/coolio_support'
4 # Implements a basic single-threaded event model with
5 # {Cool.io}[http://coolio.github.com/]. It is capable of handling
6 # thousands of simultaneous client connections, but with only a
7 # single-threaded app dispatch. It is suited for slow clients and
8 # fast applications (applications that do not have slow network
9 # dependencies) or applications that use DevFdResponse for deferrable
10 # response bodies. It does not require your Rack application to be
11 # thread-safe, reentrancy is only required for the DevFdResponse body
14 # Compatibility: Whatever Cool.io itself supports, currently Ruby
17 # This model does not implement as streaming "rack.input" which
18 # allows the Rack application to process data as it arrives. This
19 # means "rack.input" will be fully buffered in memory or to a
20 # temporary file before the application is entered.
22 # This model is mostly compatible with users of "async.callback" in
23 # the Rack environment as long as they do not depend on EventMachine.
25 # === RubyGem Requirements
26 # * cool.io 1.0.0 or later
27 module Rainbows::Coolio
29 # keep-alive timeout scoreboard
30 KATO = {}.compare_by_identity
32 # all connected clients
33 CONN = {}.compare_by_identity
35 autoload :Client, 'rainbows/coolio/client'
36 autoload :Master, 'rainbows/coolio/master'
37 autoload :ThreadClient, 'rainbows/coolio/thread_client'
38 autoload :ResponsePipe, 'rainbows/coolio/response_pipe'
39 autoload :ResponseChunkPipe, 'rainbows/coolio/response_chunk_pipe'
40 autoload :Heartbeat, 'rainbows/coolio/heartbeat'
44 require 'rainbows/coolio/server'
45 require 'rainbows/coolio/core'
46 Rainbows::Coolio.__send__ :include, Rainbows::Coolio::Core