Forum: Ruby Reel 0.4.0: A Celluloid::IO-powered web server for Ruby with streaming and Websockets

Announcement (2017-05-07): is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see and for other Rails- und Ruby-related community platforms.
Tony Arcieri (Guest)
on 2013-09-15 00:05
(Received via mailing list)
Reel 0.4.0 (codenamed "Garbo") is out! You can learn more about it here:

Reel is an asynchronous web server based on Celluloid::IO and nio4r
is capable of processing multiple requests concurrently within a single
thread. You can think of it like the way EventMachine or Node.js work,
with Fibers to smooth out the callbacks, and Celluloid's excellent
for multithreading added. You can read more about Celluloid::IO here:

Reel supports usage with Rack (and Rails) using the reel-rack gem:

This version includes three major changes from the previous:

   - *Websocket API:* previously Reel would automatically return a
   Reel::WebSocket immediately upon a websocket connection. As of 0.4.0,
   now always returns a Reel::Request object. You can check if it's a
   websocket using Reel::Request#websocket? and hijack the request into
   Reel::WebSocket object using Reel::Request#websocket
   - *Streaming Support:* Reel 0.4.0 provides a Reel::RequestBody object
   which can be used for streaming requests. This object is an
Enumerable, and
   also supports a #readpartial method for Socket duck type-like
   - *Pipelining Support:* Previously Reel only supported synchronous
   request/response usage. Reel now has full support for HTTP
   allowing multiple requests to be consumed before a response is

Full changelog below:

   - Rack adapter moved to the reel-rack project
   - Pipelining support
   - Reel::Connection#each_request for iterating through keep-alive
   - Reel::Request#body now returns a Reel::RequestBody object instead
of a
   - New WebSocket API: obtain WebSockets through
   instea of through Reel::Connection#request. Allows processing of
   throug other means than the built-in WebSocket support
   - Allow Reel to stop cleanly
   - Remove `on_error` callback system
   - Increase buffer size
   - Remove Reel::App (unmaintained, sorry)
   - Reel::CODENAME added (0.4.0 is "Garbo")
This topic is locked and can not be replied to.