Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

64 lines (44 sloc) 2.224 kB
CPAN!
* do developer-preview as 0.91_1
* finish v1.0 tasks
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.
Per-client "drain" and "completion" callbacks?
* drain sorta done as the $w->poll_cb()
* completion_cb is called when finished sending a full HTTP response. For
non-KA a guard on the conn object is sufficient, but for KA a callback is
needed.
Per-client data (for attaching guards).
Optimize env-hash
* allow Feersum apps to specify which vars will be needed (v1.1)
* 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/
* 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? psgix.web_socket or something?
Release t/Utils.pm's "simple_client" as "anyevent::anotherhttp" or something?
Jump to Line
Something went wrong with that request. Please try again.