rev/client: s/sendfile/rev_sendfile/
[rainbows.git] / TODO
blob1272515026ef41d7ac166553491c1a5c70f03e28
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 * Split out NeverBlock into NeverBlockEventMachine and NeverBlockReactor
7   NeverBlock will default to one of them (depending on NB upstream).
9 * allow _OPTIONAL_ splice(2) with DevFdResponse under Linux
10   (splice is very broken under some older kernels)
12 * use IO#sendfile_nonblock for EventMachine/Rev/Revactor/NeverBlock
14 * Open file cache (idea from nginx), since sendfile (and IO.copy_stream)
15   allows pread(2)-style offsets
17 * Byte range responses for static files + sendfile
19 * Improve test suite coverage.  We won't waste cycles with puny
20   unit tests, only integration tests that exercise externally
21   visible parts.
23 * EventMachine+Fibers+streaming input
24   (those who do not require streaming input can use
25   {rack-fiber_pool}[http://github.com/mperham/rack-fiber_pool])
27 * RevFiberPool
29 * ThreadPoolRevFiber{Spawn,Pool}: just because
31 * Rev + callcc - current Rev model with callcc (should work with MBARI)
33 * Omnibus - haven't looked into it, probably like Revactor with 1.8?
35 * Packet - pure Ruby, EventMachine-like library
37 * Rubinius Actors - should be like Revactor and easily doable once
38   Rubinius gets more mature.
40 * test and improve performance (throughput/latency/memory usage)