Changelog
View Source0.2.3
- Embedding (h3):
accept/4now works when called from a process other than the QUIC connection process. The per-connection stream router is keyed by the QUIC connection pid, shared by theh3_settings/1connection_handler and byaccept/4(viaquic_h3:get_quic_conn/1), instead of the caller's process dictionary. Incoming bidi/uni streams and datagrams now reach the session even when the embedder dispatches each request to its own worker (e.g. Livery). The router's registry row and process are reaped when its QUIC connection ends. - CT:
embedded_accept_round_trip_test(h3) drives a rawquic_h3server withh3_settings/0merged in, accepts from a worker process, and asserts that a bidi stream (with FIN) and a datagram both round-trip through the echo handler.
0.2.2
- Docs: README gains a Sponsors section (Enki Multimedia logo vendored under
docs/images/). Docs: fix invalid
webtransport:open_stream(Session, bidi | uni)snippet — type-union pipe was in expression position; nowbidi %% or uni.- CT: cover
listeners/0,listener_info/1, andstart_listener/2cert/key error paths (webtransport.erlline coverage 51% → 54%).
0.2.1
start_listener/2(h3): switch the listener loop fromspawn_link/3tospawn/3sostop_listener/1no longer propagates ashutdownexit to the caller. The interactive shell (and any non-trapping caller) now stays clean across a full lifecycle.webtransport_session:init/1: distinguish a handler module that fails to load ({handler_not_loaded, M, Reason}) from a loaded module missinginit/2orinit/3.- README: quick-start now launches the shell with
ERL_FLAGS="-pa examples" rebar3 shell --apps webtransportso handler modules outsidesrc/are reachable. - Regression test:
stop_listener_does_not_kill_caller_test(h3 + h2 groups).
Known issue (tracked upstream in quic): a graceful close_session/1 still emits a quic_h3_connection quic_closed CRASH REPORT because the dep treats any QUIC-conn 'DOWN' as abnormal. Will resolve when quic is bumped.
0.2.0
- Switch
h2andquicdeps to hex packages:h2 0.5.0,quic 1.3.0. - Add
public_keyto the application list. - Clean dialyzer run: dropped dead
{error, _}clauses aroundh2_capsule:decode/1andh2_varint:decode/1, removed unreachableRouter =:= undefinedbranch, dropped unsupportedh3_datagram_enabledfromquic_h3:start_server/3opts, switched listener loop tospawn_link/3for static reachability. - Configure
xref_checks(skipexports_not_usedfor the public API) anddialyzer(plt_extra_apps: [public_key, ssl, crypto, inets]). - Add GitHub Actions CI: OTP 26/27 matrix runs compile, xref, eunit, dialyzer; separate job builds ex_doc.
0.1.0
- Initial release.