event_machine: garbage avoidance for pipe responses
[rainbows.git] / TODO
blob3133ba6168b045884340352829643943796e4ec1
1 = TODO items for Rainbows!
3 We're lazy and pick the easy items to do first, then the ones people
4 care about.
6 * documentation improvements
8 * Split out NeverBlock into NeverBlockEventMachine and NeverBlockReactor
9   NeverBlock will default to one of them (depending on NB upstream).
11 * allow _OPTIONAL_ splice(2) with DevFdResponse under Linux
12   (splice is very broken under some older kernels)
14 * use IO#sendfile_nonblock for EventMachine/Revactor/NeverBlock
16 * Open file cache Rack app/middleware (idea from nginx), since sendfile
17   (and IO.copy_stream) allows pread(2)-style offsets
19 * Byte range responses for static files + sendfile
21 * Improve test suite coverage.  We won't waste cycles with puny
22   unit tests, only integration tests that exercise externally
23   visible parts.
25 * EventMachine+Fibers+streaming input
26   (those who do not require streaming input can use
27   {rack-fiber_pool}[http://github.com/mperham/rack-fiber_pool])
29 * RevFiberPool
31 * ThreadPoolRevFiber{Spawn,Pool}: just because
33 * Rev + callcc - current Rev model with callcc (should work with MBARI)
35 * Omnibus - haven't looked into it, probably like Revactor with 1.8?
37 * Packet - pure Ruby, EventMachine-like library
39 * Rubinius Actors - should be like Revactor and easily doable once
40   Rubinius gets more mature.
42 * test and improve performance (throughput/latency/memory usage)