Revision history for Linux::Event::WebSocket

0.003  2026-10-27

    - Restore compatibility with Linux::Event::HTTP 0.004 by removing
      dependence on its deleted Request/Response and connection internals.
    - Attach the published Unblock::HTTP1 0.13 engine directly to ordinary
      Linux::Event streams for the WebSocket opening HTTP/1.1 handshake.
      Use canonical Uniform::HTTP 0.06 request/response messages.
    - Preserve the existing WebSocket Client/Server callbacks, Connection
      subclasses, native bq framing engine, TLS, socket identity,
      subprotocols, masking and close semantics. Replace the opening
      HTTP-byte native consumer with the established WebSocket consumer
      at 101 without losing same-read frames.
    - Allow coexistence with Linux::Event::HTTP 0.004 without requiring
      that distribution. Use Linux::Event::WebSocket for standalone
      WebSocket applications and the HTTP distribution's WebSocket
      callbacks for mixed HTTP/WebSocket applications.
    - Require Linux::Event 0.117, Unblock::HTTP1 0.13 and
      Uniform::HTTP 0.06. No upstream library API changes are needed.
    - Retain http_server() as a compatibility accessor to the listener;
      it no longer returns an HTTP::Server object.

0.002  2026-09-21

    - Fix a native bq_websocket allocation leak when an invalid Close frame is
      rejected while control messages are exposed to the application.
    - Delay the application-visible Close copy until after RFC Close payload
      validation, and release the original message if copy allocation fails.
    - Add regression checks that rejected one-byte, invalid-status, and
      invalid-UTF8 Close frames leave no tracked native heap allocation.
    - This fixes CPAN Testers aborts in t/03-engine.t on DEBUGGING/multiplicity
      Perl builds where bq_websocket correctly asserted that native allocation
      accounting was nonzero at socket destruction.

0.001  2026-09-20

    First CPAN release.

    - Add WebSocket client and server APIs for Linux::Event.
    - Support ws:// and wss:// transports.
    - Support text and binary messages, fragmentation, Ping/Pong, Close,
      subprotocol negotiation, and configurable message-size limits.
    - Require Linux::Event::HTTP 0.002 and use its native server-input Upgrade
      path instead of the obsolete WebSocket-owned server HTTP byte bridge.
    - Preserve the live Linux::Event Stream across HTTP Upgrade, including TLS,
      queued output, application state, and post-101 bytes read in the same
      transport operation.
    - Use Linux::Event 0.116's raw native-consumer ABI for established
      WebSocket input.
    - Use a vendored, locally patched bq_websocket protocol core behind a
      private XS adapter for RFC 6455 framing and message assembly.
    - Validate inbound and outbound text against RFC 3629 in XS.
    - Use Linux getrandom(2) for client masking keys.
    - Keep Linux::Event responsible for sockets, epoll, TLS, buffering,
      backpressure, timers, and lifecycle.
    - Pass the production test suite on Perl 5.36 and 5.44.
    - Pass the selected Autobahn client and server conformance set with zero
      conformance failures.
