Revision history for Unblock-HTTP1 0.13 2026-10-25 - Add Server->drain() for framework-neutral graceful HTTP/1 service shutdown: complete an admitted request, reject pipelined successors, and preserve queued output/backpressure until transport completion. - Add a canonical simple-response native serializer fast path without changing the Uniform::HTTP object contract or public input ABI. Preserve general serialization for complex framing and subclasses. - Transfer accepted wire output into the engine queue without retaining duplicate serialized response buffers on completed Transactions. - Avoid redundant completion and freeze work for validated bodyless Requests; keep body-bearing/streamed lifecycle semantics unchanged. - Add targeted regressions for drain, native response parity, output ownership, and bodyless request completion. Retain event-loop independence and public native input ABI version 1. 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.