Download Latest Version 4.7.4 source code.zip (477.0 kB)
Email in envelope

Get an email when there's a new version of hackney

Home / 4.7.0
Name Modified Size InfoDownloads / Week
Parent folder
4.7.0 source code.tar.gz 2026-07-16 365.9 kB
4.7.0 source code.zip 2026-07-16 446.3 kB
README.md 2026-07-16 1.3 kB
Totals: 3 Items   813.4 kB 0

HTTP/2 request bodies larger than the peer's flow control window no longer fail with {error, send_buffer_full}. Body sends block until the server opens the window, bounded by the new send_timeout option (default 30000 ms, infinity allowed, nonblock restores the old fail-fast behavior). If the window never opens the request fails with {error, timeout} and the abandoned stream is reset so its buffered body does not linger on a shared connection. Applies to whole-body and streamed HTTP/2 request bodies; HTTP/1.1 and HTTP/3 are unchanged.

HTTP/2 async requests now deliver their response messages: the stream entry stored an internal reference where the delivery code expected the stream_to pid, so every async HTTP/2 response was silently dropped.

HTTP/2 {async, once} now honors stream_next/1 with the same contract as HTTP/1.1: status and headers eagerly, then one message per pull. once streams use h2 manual flow control, so a slow consumer keeps the peer's window closed and in-flight data stays bounded to one window.

Connections created with hackney:connect/4 and {pool, false} honor a {send_timeout, T} connect option; pooled connections keep the default and take the per-request option instead.

See NEWS.md for details. PR [#911].

Source: README.md, updated 2026-07-16