DEPLOY FAQ HACKING LICENSE NEWS README SIGNALS Sandbox Static_Files Summary TUNING Test_Suite rainbows_1 vs_Unicorn
Rainbows ActorSpawn AppPool Base Configurator Coolio CoolioThreadPool CoolioThreadSpawn DevFdResponse Epoll EventMachine FiberPool FiberSpawn MaxBody NeverBlock Rev RevFiberSpawn RevThreadPool RevThreadSpawn Revactor Sendfile ServerToken StreamResponseEpoll ThreadPool ThreadSpawn ThreadTimeout WriterThreadPool WriterThreadSpawn XEpoll XEpollThreadPool XEpollThreadSpawn

Rainbows! at a glance

Confused by all the options we give you? So are we! Here's some tables to help keep your head straight. Remember, engineering is all about trade-offs.

core features and compatibility


module rack.input streaming Ruby 1.8 Ruby 1.9 Rubinius slow clients
Unicorn/Base Yes Yes Yes Yes No
Revactor Yes No Yes No Yes
ThreadPool Yes Yes Yes Yes Yes
Coolio No Yes Yes No Yes
ThreadSpawn Yes Yes Yes Yes Yes
EventMachine No Yes Yes No Yes
CoolioThreadSpawn No No Yes No Yes
FiberSpawn Yes No Yes No Yes
FiberPool Yes No Yes No Yes
ActorSpawn Yes Not yet No Yes Yes
NeverBlock No Yes Yes No Yes
CoolioThreadPool No Yes No No Yes
CoolioFiberSpawn Yes No Yes No Yes
WriterThreadPool Yes Yes Yes Yes no
WriterThreadSpawn Yes Yes Yes Yes no
Epoll no Yes Yes Yes Yes
XEpoll no Yes Yes Yes Yes
XEpollThreadSpawn Yes Yes Yes Yes Yes
XEpollThreadPool Yes Yes Yes Yes Yes

application requirements


module slow I/O (backend, not client) thread safety single thread reentrant
Unicorn/Base avoid No No
Revactor Coolio, Revactor, not Fiber::IO No Yes
ThreadPool thread-safe Ruby Yes No
Coolio Coolio No No
ThreadSpawn thread-safe Ruby Yes No
EventMachine EventMachine No No
CoolioThreadSpawn thread-safe Ruby, Coolio Yes No
FiberSpawn Rainbows::Fiber::IO No Yes
FiberPool Rainbows::Fiber::IO No Yes
ActorSpawn thread-safe Ruby Yes Yes
NeverBlock NeverBlock, EventMachine No Yes
CoolioThreadPool thread-safe Ruby, Coolio Yes No
CoolioFiberSpawn Rainbows::Fiber::IO No Yes
WriterThreadPool avoid Maybe Maybe
WriterThreadSpawn avoid Maybe Maybe
Epoll No No No
XEpoll No No No
XEpollThreadSpawn thread-safe Ruby Yes No
XEpollThreadPool thread-safe Ruby Yes No

middlewares and frameworks


model DevFdResponse AppPool Rack::Lock async
Unicorn/Base no-op no-op no-op lots of RAM :P
Revactor no-op Yes No! Revactor itself
ThreadPool Yes Yes Yes thread-safe Ruby
Coolio Yes no-op no-op DevFdResponse
ThreadSpawn Yes Yes Yes thread-safe Ruby
EventMachine Yes no-op no-op async_sinatra, Cramp, rack-fiber_pool
CoolioThreadSpawn Yes Yes Dumb thread-safe Ruby
FiberSpawn Yes Yes No! Rainbows::Fiber::IO, Rainbows.sleep
FiberPool Yes Yes No! Rainbows::Fiber::IO, Rainbows.sleep
ActorSpawn no-op Yes Yes thread-safe Ruby
NeverBlock Yes Yes* Yes* NeverBlock, async_sinatra
CoolioThreadPool Yes Yes Dumb Coolio, thread-safe Ruby
CoolioFiberSpawn Yes Yes No! Coolio, Rainbows::Fiber::IO, Rainbows.sleep
WriterThreadPool Yes no-op no-op thread-safe Ruby in response body only
WriterThreadSpawn Yes no-op no-op thread-safe Ruby in response body only
Epoll Yes no-op no-op DevFdResponse
XEpoll Yes no-op no-op DevFdResponse
XEpollThreadPool Yes Yes Yes thread-safe Ruby
XEpollThreadSpawn Yes Yes Yes thread-safe Ruby

mail archives: https://yhbt.net/rainbows-public/
	http://ou63pmih66umazou.onion/rainbows-public/ 
	nntp://news.public-inbox.org/inbox.comp.lang.ruby.rainbows 
	nntp://ou63pmih66umazou.onion/inbox.comp.lang.ruby.rainbows 
	nntp://news.gmane.io/gmane.comp.lang.ruby.rainbows.general 
public: rainbows-public@yhbt.net
source code: git clone https://yhbt.net/rainbows.git
	torsocks git clone http://ou63pmih66umazou.onion/rainbows.git