-
Notifications
You must be signed in to change notification settings - Fork 15
/
TODO
64 lines (46 loc) · 2.24 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
Timeouts
* slow responses? (feasable? just let TCP do it?)
psgi.input streaming
* add a "poll_cb()" method to the psgi.input handle as an extension? EV
gets to schedule the watcher in that case rather than bleeding the fd to
the handler.
* related: Connection: close bodies
* related: Transfer-Encoding: chunked bodies
IO::Handle-like responses
* check if it's got a real file descriptor? optimize (libeio or similar
for non-blocking sendfile?) (v1.1)
* wait for readability using an ev watcher? (v1.1)
streamed responses
* instead of an implicit "low water mark" of 0 for the poll_cb
writer-object callback, a configurable number of bytes can be used.
Handle requests that don't require a body (optional entities).
* Related: allow overriding the "if entity has a C-L, wait for it" during request
start (not sure if there's a PSGI-compatible way to do this)
* different request timeout logic will be needed.
Optimize env-hash
* allow Feersum apps to specify which vars will be needed (v1.1)
** will this even be a win?
* maybe use uvar magic for PSGI if using Perl v5.10.0 (Variable::Magic
style?) (v1.1)
Perf idea: Un-corked reads - should newly accepted handles wait or just try
read right away?
multiple Feersum threads, one Perl thread?
WebSocket support (v1.1)
* http://www.whatwg.org/specs/web-socket-protocol/
* Support psgix.io and Web::Hippie already (0.981), but would be good to
accelerate it.
* Do the handshake in C/XS, call request_handler once request is complete.
* I/O is done using the streaming interface (buffered)
* requires random numbers (drand48?) and an MD5 implementation (link
openssl? use the guts of Digest::MD5 somehow?)
* make this a separate module since if it brings in an openssl deps.
* will this work for PSGI? magic psgix.web_socket or something?
Release t/Utils.pm's "simple_client" as "anyevent::anotherhttp" or something?
accept4
* available on newer linuxes, saves calls to fcntl for setting NONBLOCK
and CLOEXEC
JSON accelleration?
* can write_json() an element in an array of things? automagically call JSON::XS stuff?
* middleware with XS-accellerator?
True pre-forking support
* serialize accept() calls