Changes for version 0.44 - 2026-09-09

  • psgix.input.buffered is set with the rest of an HTTP/2 request's environment rather than at dispatch, so an application can tell that a bodied h2 request with no content-length is complete.
  • ADDS: ABI v6 stream handles. One seam writes a response body a piece at a time over HTTP/1.1 or over an HTTP/2 stream, on TLS or in clear, where conn_detach can only hand over a socket.
  • stream_on_abort reports a stream die under its producer, including an HTTP/2 RST_STREAM on one stream of many.
  • stream_on_drain and an HM_ABI_STREAM_FULL return give the HTTP/1.1 streaming path backpressure it did not have.
  • ADDS: Hyperman::stream($env, $status, \@headers), the Perl door onto the same registry, returning a Hyperman::Writer.
  • ADDS: psgix.hyperman.stream, the [fd, generation, stream id] ticket both doors take. Unlike psgix.hyperman.conn it is present on HTTP/2.
  • An HTTP/2 body written through a stream handle is framed as it is produced.

Modules

an event-loop PSGI server
epoll readiness backend for Hyperman::Loop
io_uring backend for Hyperman::Loop
kqueue readiness backend for Hyperman::Loop
portable poll(2) backend for Hyperman::Loop
a fast, native, Future-compatible async result
the per-worker event loop
the object that writes a response body a piece at a time
Plack/PSGI adapter for the Hyperman server