Rainbows! 0.96.0 - range support

Rainbows! is an HTTP server for sleepy Rack applications. It is based
on
Unicorn, but designed to handle applications that expect long
request/response times and/or slow clients.

Changes:

For concurrency models that use sendfile or IO.copy_stream, HTTP
Range requests are honored when serving static files. Due to
the lack of known use cases, multipart range responses are not
supported.

When serving static files with sendfile and proxying
pipe/socket bodies, responses bodies are always properly closed
and we have more test cases for dealing with prematurely
disconnecting clients.

Concurrency model specific changes:

EventMachine, NeverBlock -

  • keepalive is now supported when proxying pipes/sockets
  • pipelining works properly when using EM::FileStreamer
  • these remain the only concurrency models without
    Range support (EM::FileStreamer doesn’t support ranges)

Rev, RevThreadSpawn, RevThreadPool -

  • keepalive is now supported when proxying pipes/sockets
  • pipelining works properly when using sendfile

RevThreadPool -

  • no longer supported under 1.8, it pegs the CPU at 100%.
    Use RevThreadSpawn (or any other concurrency model) if
    you’re on 1.8, or better yet, switch to 1.9.

Revactor -

  • proxying pipes/sockets with DevFdResponse is much faster
    thanks to a new Actor-aware IO wrapper (used transparently
    with DevFdResponse)
  • sendfile support added, along with Range responses

FiberSpawn, FiberPool, RevFiberSpawn -

  • Range responses supported when using sendfile

ThreadPool, ThreadSpawn, WriterThreadPool, WriterThreadSpawn -

  • Range responses supported when using sendfile or
    IO.copy_stream.

See the full git logs for a list of all changes.

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