You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
refactor(http3): delegate H3 stack to erlang_quic / quic_h3
Hackney's hand-rolled HTTP/3 framing, QPACK codec, control stream and
QPACK encoder/decoder stream handling are removed in favour of the
quic_h3 module shipped in erlang_quic's feat/http3 branch.
- src/hackney_quic.erl rewritten as a ~270 LOC gen_server adapter that
translates {quic_h3, Conn, _} events into the existing
{quic, ConnRef, _} protocol consumed by hackney_conn.
- Public hackney_quic API now exposes send_request/3 (atomic stream
open + HEADERS) instead of the open_stream/1 + send_headers/4 pair;
hackney_h3 updated accordingly.
- src/hackney_qpack.erl removed (~622 LOC); QPACK lives in quic_qpack.
- H3 peername/sockname/setopts/peercert now return {error, not_supported}
since quic_h3 does not expose them.
- rebar.config: quic dep tracks erlang_quic feat/http3 branch.
Copy file name to clipboardExpand all lines: guides/http3_guide.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,7 +17,7 @@ Hackney supports HTTP/3, the latest version of HTTP built on QUIC (UDP-based tra
17
17
18
18
## Requirements
19
19
20
-
HTTP/3 support uses a pure Erlang QUIC implementation. QUIC support is available automatically when hackney is compiled - no external dependencies required.
20
+
HTTP/3 support is provided by the [`erlang_quic`](https://github.com/benoitc/erlang_quic) dependency (module `quic_h3`), which handles the QUIC transport, QPACK header compression, HTTP/3 framing, and control streams. Hackney hosts only a thin adapter (`hackney_quic`) that translates `quic_h3` events into the internal connection protocol. No C dependencies, no external binaries required.
0 commit comments