hackney 4.0.0 is out. The release trims the client down: HTTP/2 and HTTP/3 are now delegated to two separate Erlang libraries, erlang_h2 and erlang_quic, so hackney no longer ships its own framing, HPACK / QPACK codecs, control streams or state machines. The HTTP/3 path is fully RFC 9114 compliant via quic_h3, with ALPN negotiation and Alt-Svc auto-discovery, and is reached through the same hackney:request/5 API as HTTP/1.1.
The bundled metrics subsystem is removed. In its place a Go-style middleware chain runs around hackney:request/1..5, configured per request with {middleware, [Fun, ...]} or globally via application:set_env(hackney, middleware, [...]). Users plug in prometheus, telemetry or anything else without hackney owning the policy. Migration recipes are in the new Middleware Guide.
Release notes and full changelog: Release hackney 4.0.0 · benoitc/hackney · GitHub