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

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 forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs