Revision history for Unblock-HTTP2

0.03  2026-10-04
    - Rename the public per-request object from Stream to Transaction so
      Unblock::HTTP1, Unblock::HTTP2, and Unblock::HTTP3 share the same
      application-facing concept.
    - Rename the related public API: id() becomes stream_id(), stream_count()
      becomes transaction_count(), stream_for_id() becomes
      transaction_for_stream_id(), can_open_stream() becomes
      can_open_transaction(), and max_active_streams becomes
      max_active_transactions.
    - Do not provide compatibility aliases for the old Stream API. This is an
      intentional early-version API cleanup.
    - Keep HTTP/2 stream terminology for protocol-level concepts such as stream
      IDs, flow control, RST_STREAM, GOAWAY boundaries, and SETTINGS.

0.02  2026-10-04
    - Require Uniform::HTTP 0.05 and use its FastPath ABI for exact canonical
      Request and Response objects.
    - Map canonical outgoing headers directly to nghttp2_nv in XS, avoiding
      per-field Perl method dispatch and intermediate HTTP/2 header arrays.
    - Lowercase canonical field names and enforce HTTP/2 field restrictions in
      the native fast path while preserving the existing portable fallback.
    - Build received canonical Request and Response objects through trusted
      FastPath construction after Unblock has validated their HTTP/2 semantics.
    - Keep subclasses and framework adapters on the normal Uniform contract.
    - Add repeatable FastPath performance comparison tooling under xt/ and CI.
      The small-message benchmark shows large gains in native submission and
      full in-memory request/response throughput.

0.01  2026-10-04
    - Initial release of a standalone, event-loop and operating-system neutral
      HTTP/2 protocol engine.
    - Use Uniform::HTTP 0.04 Request and Response objects directly.
    - Provide byte-in/byte-out Client and Server engines with multiplexed Stream
      objects and no socket, TLS, or event-loop ownership.
    - Use a small private XS binding to libnghttp2 through Alien::nghttp2.
    - Support buffered and streaming request and response bodies, cooperative
      backpressure, trailers, informational responses, and half-close state.
    - Support ordinary CONNECT and generic Extended CONNECT.
    - Support SETTINGS inspection and updates, PING, GOAWAY, graceful draining,
      stream resets, standard HTTP/2 error codes, and preserved reset details.
    - Support application-controlled receive flow control while keeping
      connection-level credit independent from slow streams.
    - Support RFC 9218 extensible priorities and deliberately omit the
      deprecated RFC 7540 dependency-tree priority API.
    - Advertise SETTINGS_ENABLE_PUSH = 0; Server Push is not exposed.
    - Preserve fatal session errors, invalid-frame observations, unknown
      extension-frame safety, and GOAWAY details for higher-layer policy.
    - Add in-memory protocol tests, packaged-distribution distcheck/disttest,
      and bidirectional interoperability tests against stock nghttp2 tools.
    - Test Perl 5.16 on Linux, current Perl on Linux and macOS, and Strawberry
      Perl on Windows.
