The main change in this release is replacing the lsquic-based QUIC NIF with a pure Erlang implementation. HTTP/3 support now works without
any external dependencies.
What changed:
Removed the entire c_src/ directory (~1.3M lines of C code including lsquic and BoringSSL)
Removed CMake, Go, and C compiler requirements
Added dependency on the quic library (pure Erlang QUIC implementation)
Added hackney_qpack module for QPACK header compression (RFC 9204)
What this means for you:
rebar3 compile just works - no build scripts, no system dependencies
HTTP/3 is available on all platforms where Erlang runs
hackney_quic:is_available/0 now always returns true
forgot to say that the current implemntation in cowboy is using quicer which is using quic nif from emqx based on Microsoft library which is not fully complete and hard to use multi-platform. Originally hackney 3 was using lsquic but this was making the requirements more complex to operate.
Love it, glad you’re moving the needle with the client, people have long said that it was hard and you need to use a NIF and bla bla. As always it’s easier to write in Erlang, with the socket API it should be trivial to do it for the server to.
Not sure it needs to. It’s pretty new also and need probably some work on internals. But the version 0.8 has most of the spec handled and tested. It passes the interop runner tests.