Revision history for Unblock-HTTP1
0.12 2026-10-21
- Add coordinated buffered/streamed receive selection while retaining
the canonical Uniform::HTTP message and native engine Transaction.
- Expose on_data and on_finish with exactly-once terminal notification,
bounded receive buffers, and bodyless response correctness.
- Defer attached-transport success retirement until the host accepts
all corresponding output bytes, preserving error and congestion rules.
- Retain ordered HTTP/1.1 pipelining, Upgrade handoff and borrowed-input
suffix accounting without changing the public NativeABI layout.
- Expand receive/lifecycle, fatal output-limit and native/portable
regression tests. Continue standalone use without an event loop.
0.11 2026-10-10
- Add an optional framework-hosted Client and Server mode using
transport => $stream. HTTP output is delivered automatically through
unblock_send(), unblock_finish(), and unblock_abort().
- Make delayed responses work without an extra event-loop output pump,
and expose resume_output() for framework backpressure.
- Accept named request fields in Client->request() and named response
fields in Transaction->respond() and send_informational(). Canonical
Uniform::HTTP objects remain supported.
- Clarify clean EOF, delayed response, graceful finish, transport abort,
and Upgrade/CONNECT handoff ordering.
- Preserve low-level manual output mode and NativeABI v1 input semantics;
fix native borrowed-input output synchronization for attached hosts.
- Add runnable IO::Async, AnyEvent, and Linux::Event integration examples
and a cookbook. Linux::Event is optional and Linux-only.
- Add attached-transport regression tests and broaden the public POD.
Keep Perl 5.16 and Uniform::HTTP 0.06 as requirements.
0.10 2026-10-04
- Harmonize the public API vocabulary with Unblock::HTTP2 and
Unblock::HTTP3 while keeping HTTP/1-specific behavior natural.
- Add Transaction->error() to complete the common lifecycle vocabulary:
state(), error(), is_complete(), is_cancelled(), is_error(), and
is_terminal().
- Normalize NativeABI discovery with definition(), native_include_dir(),
header_path(), and c_header().
- Report NativeABI struct_size so native consumers can validate both ABI
version and structure size before dereferencing operations.
- Install a public unblock_http1_native_abi.h header and compile the XS
implementation against that same header instead of duplicating the C ABI
declaration.
- Keep the HTTP/1 native ABI focused on borrowed input rather than adding
protocol-irrelevant HTTP/2 output operations for symmetry.
- Make the Client, Server, Transaction, callback, streaming, lifecycle, and
native-integration documentation intentionally parallel with the other
Unblock HTTP engines.
- Jump from 0.03 to 0.10 to mark the intentional early API harmonization.
No compatibility aliases are provided.
0.03 2026-10-04
- Add a versioned, transport-neutral borrowed native input ABI for XS
transports while preserving the ordinary input() interface.
- Require Uniform::HTTP 0.06 and use its native FastPath header to construct
canonical requests and responses directly from validated parser byte spans.
- Apply the native construction path to both server request receipt and
client response receipt, including informational and switched responses.
- Report exact consumed prefixes so incomplete heads and post-switch bytes
remain owned by the host transport.
- Keep protocol parsing and lifecycle state in Unblock rather than
duplicating HTTP/1 logic in event-framework adapters.
0.02 2026-10-04
- Use the Uniform::HTTP 0.05 FastPath ABI for trusted receive
construction and canonical request/response serialization.
- Adopt parser-produced header storage without repeating Uniform field
validation or deep-copying headers.
- Preserve the portable Uniform contract for subclasses and adapters.
0.01 2026-10-04
- First release.
- Portable HTTP/1.0 and HTTP/1.1 client/server protocol engine.
- Event-loop, transport, and operating-system neutral byte interface.
- Uniform::HTTP 0.04 request and response objects.
- Content-Length, chunked, close-delimited, and transfer-coding framing.
- Streaming request and response bodies with cooperative backpressure.
- Ordered headers and trailers with strict framing validation.
- Persistent connection, Expect, informational response, Upgrade, and
CONNECT semantics.
- Request-smuggling protections and configurable parser/resource limits.
- Exact post-HTTP protocol-switch byte preservation.
- Native picohttpparser backend with portable Perl-facing API.
- Cross-platform CI on Linux, macOS, and Windows, including Perl 5.16.
Keyboard Shortcuts
Global
s
Focus search bar
?
Bring up this help dialog
GitHub
gp
Go to pull requests
gi
Go to GitHub issues (only if GitHub is preferred repository)