Changes for version 0.04 - 2026-10-04
- Add Unblock::HTTP2::NativeABI for XS-backed transports.
- Accept borrowed native input buffers directly on both Client and Server, avoiding the transport-side Perl byte-scalar materialization.
- Add native output draining so libnghttp2 output can be copied directly into a transport-owned native queue without an intermediate Perl string.
- Support native output pause-after-accept semantics for transport backpressure while keeping the portable input()/output() API unchanged.
- Require Uniform::HTTP 0.06 for its header-only native C ABI.
- Inspect exact canonical outgoing Request and Response objects directly from XS without allocating a Perl FastPath view.
- Keep received initial HTTP/2 header fields native through validation and construct the final canonical Uniform object directly from native spans.
- Remove per-field Perl receive callbacks for initial headers and trailers; trailers now cross the XS boundary once per completed header block.
- Keep Uniform subclasses and adapters on the portable Perl contract.
- Preserve HTTP/2 validation, header-list limits, informational responses, Extended CONNECT, trailers, and lifecycle semantics on the native path.
- In the seven-sample CI comparison against the 0.03 baseline, median canonical submit rate improved 73.5% and full in-memory loopback improved 173.6%.
- Add a diagnostic native-transport benchmark. The native transport ABI is intended to remove Perl buffer materialization at an XS transport boundary; an in-process peer bridge is not used as a throughput claim.
Documentation
Modules
non-blocking HTTP/2 protocol engine for Perl
one HTTP/2 client connection
Native transport ABI for Unblock::HTTP2
one HTTP/2 server connection
one HTTP/2 request/response transaction