chore(deps): update dependency hackney to v3 #19

Merged
Doridian merged 1 commit from renovate/hackney-3.x into main 2026-03-10 16:15:16 -07:00
Member

This PR contains the following updates:

Package Type Update Change
hackney (source) prod major ~> 1.8~> 3.0

Release Notes

benoitc/hackney (hackney)

v3.2.1

Compare Source

Bug Fixes
  • Fix recv_timeout option being ignored for pooled connections (#​832)
  • Fix off-by-one error in HPACK decoding (#​831)
  • Fix invalid match in handle_h2_frame/2 for HTTP/2 window updates (#​829)
  • Fix binary syntax in EDoc comment to fix XML parsing error

v3.2.0

Compare Source

Refactor
  • Replace all cowlib modules with hackney-native implementations
  • Remove src/libs/ directory (all modules moved to src/)
Performance
  • HTTP/2 state machine optimizations:
    • Stream caching for recently accessed streams
    • gb_sets for lingering streams (O(log N) vs O(N) lookups)
    • IOList accumulation for header fragments
  • HPACK and QPACK header compression with O(1) static table lookups
  • WebSocket: use rand:bytes/1 instead of crypto:strong_rand_bytes/1 for mask keys
Added
  • h2spec HTTP/2 compliance testing (95% pass rate - 139/146 tests)
    • h2spec_server.erl: Minimal HTTP/2 server for compliance testing
    • h2spec_SUITE.erl: CT suite for running h2spec tests
    • Makefile target: make h2spec-test
  • HTTP/3 E2E tests against real servers
    • hackney_http3_e2e_SUITE.erl: Tests against Cloudflare, Google, quic.tech
    • Makefile targets: make http3-e2e-test, make all-e2e-test
  • HTTP/2 machine benchmarks (hackney_http2_machine_bench.erl)
Bug Fixes
  • Fix HTTP/2 flow control for body sending (use send_or_queue_data/4)
  • Fix async 204/304/HEAD responses not sending done message
  • Fix unknown HTTP/2 frame types not being ignored (RFC 7540 4.1)
  • Fix HTTP/2 frame size validation

v3.1.2

Compare Source

Dependencies
  • Bump quic dependency to 0.10.1

v3.1.1

Compare Source

Bug Fixes

  • Fix HTTP/3 Fin flag handling for HEAD requests and responses without body
  • Bump quic dependency to 0.7.1 (fixes packet number reconstruction)

Added

  • Add TLS options support in hackney_quic (verify, cacerts, cacertfile, SNI)
  • Add redirect following in hackney_h3 (follow_redirect, max_redirect options)
  • Add HTTP/3 integration and redirect test suites (36 new tests)

v3.1.0

Compare Source

Refactor

  • Replace QUIC NIF with pure Erlang implementation. HTTP/3 now works with zero external dependencies - no CMake, Go, or C compiler needed. Just rebar3 compile.

Removed

  • Remove c_src/ directory containing lsquic, BoringSSL, and NIF code (~1.3M lines of C)
  • Remove do_cmake.sh and do_quic.sh build scripts

Added

  • Add hackney_qpack.erl for QPACK header compression (RFC 9204)

Changed

  • hackney_quic:is_available/0 now always returns true (pure Erlang is always available)
  • Update documentation to reflect no C dependencies

Dependencies

  • Add quic ~>0.5.1 (pure Erlang QUIC implementation)

v3.0.3

Compare Source

Bug Fixes
  • Restore function-based streaming body support (#​821). Functions passed to send_body/2 now work correctly for iterative body streaming, supporting both stateless fun() -> {ok, Data} | eof and stateful fun(State) -> {ok, Data, NewState} | eof forms.
CI
  • Fix FreeBSD CI job by adding pcre2 package to resolve git linker error

v3.0.2

Compare Source

Bug Fixes
  • Add default Content-Type: application/octet-stream header when sending a body without explicit Content-Type (#​823). This restores 1.x behavior and follows RFC 7231 recommendations.
Dependencies

v3.0.1

Compare Source

v3.0.0

Compare Source

v2.0.1

Compare Source

v2.0.0

Compare Source


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [hackney](https://hex.pm/packages/hackney) ([source](https://github.com/benoitc/hackney)) | prod | major | `~> 1.8` → `~> 3.0` | --- ### Release Notes <details> <summary>benoitc/hackney (hackney)</summary> ### [`v3.2.1`](https://github.com/benoitc/hackney/releases/tag/3.2.1) [Compare Source](https://github.com/benoitc/hackney/compare/3.2.0...3.2.1) ##### Bug Fixes - Fix `recv_timeout` option being ignored for pooled connections ([#&#8203;832](https://github.com/benoitc/hackney/issues/832)) - Fix off-by-one error in HPACK decoding ([#&#8203;831](https://github.com/benoitc/hackney/issues/831)) - Fix invalid match in `handle_h2_frame/2` for HTTP/2 window updates ([#&#8203;829](https://github.com/benoitc/hackney/issues/829)) - Fix binary syntax in EDoc comment to fix XML parsing error ### [`v3.2.0`](https://github.com/benoitc/hackney/releases/tag/3.2.0) [Compare Source](https://github.com/benoitc/hackney/compare/3.1.2...3.2.0) ##### Refactor - Replace all cowlib modules with hackney-native implementations - Remove `src/libs/` directory (all modules moved to `src/`) ##### Performance - HTTP/2 state machine optimizations: - Stream caching for recently accessed streams - gb\_sets for lingering streams (O(log N) vs O(N) lookups) - IOList accumulation for header fragments - HPACK and QPACK header compression with O(1) static table lookups - WebSocket: use `rand:bytes/1` instead of `crypto:strong_rand_bytes/1` for mask keys ##### Added - h2spec HTTP/2 compliance testing (95% pass rate - 139/146 tests) - `h2spec_server.erl`: Minimal HTTP/2 server for compliance testing - `h2spec_SUITE.erl`: CT suite for running h2spec tests - Makefile target: `make h2spec-test` - HTTP/3 E2E tests against real servers - `hackney_http3_e2e_SUITE.erl`: Tests against Cloudflare, Google, quic.tech - Makefile targets: `make http3-e2e-test`, `make all-e2e-test` - HTTP/2 machine benchmarks (`hackney_http2_machine_bench.erl`) ##### Bug Fixes - Fix HTTP/2 flow control for body sending (use `send_or_queue_data/4`) - Fix async 204/304/HEAD responses not sending `done` message - Fix unknown HTTP/2 frame types not being ignored (RFC 7540 4.1) - Fix HTTP/2 frame size validation ### [`v3.1.2`](https://github.com/benoitc/hackney/releases/tag/3.1.2) [Compare Source](https://github.com/benoitc/hackney/compare/3.1.1...3.1.2) ##### Dependencies - Bump `quic` dependency to 0.10.1 ### [`v3.1.1`](https://github.com/benoitc/hackney/releases/tag/3.1.1) [Compare Source](https://github.com/benoitc/hackney/compare/3.1.0...3.1.1) #### Bug Fixes - Fix HTTP/3 Fin flag handling for HEAD requests and responses without body - Bump `quic` dependency to 0.7.1 (fixes packet number reconstruction) #### Added - Add TLS options support in `hackney_quic` (verify, cacerts, cacertfile, SNI) - Add redirect following in `hackney_h3` (follow\_redirect, max\_redirect options) - Add HTTP/3 integration and redirect test suites (36 new tests) ### [`v3.1.0`](https://github.com/benoitc/hackney/releases/tag/3.1.0) [Compare Source](https://github.com/benoitc/hackney/compare/3.0.3...3.1.0) #### Refactor - Replace QUIC NIF with pure Erlang implementation. HTTP/3 now works with zero external dependencies - no CMake, Go, or C compiler needed. Just `rebar3 compile`. #### Removed - Remove c\_src/ directory containing lsquic, BoringSSL, and NIF code (\~1.3M lines of C) - Remove do\_cmake.sh and do\_quic.sh build scripts #### Added - Add `hackney_qpack.erl` for QPACK header compression (RFC 9204) #### Changed - `hackney_quic:is_available/0` now always returns `true` (pure Erlang is always available) - Update documentation to reflect no C dependencies #### Dependencies - Add `quic` \~>0.5.1 (pure Erlang QUIC implementation) ### [`v3.0.3`](https://github.com/benoitc/hackney/releases/tag/3.0.3) [Compare Source](https://github.com/benoitc/hackney/compare/3.0.2...3.0.3) ##### Bug Fixes - Restore function-based streaming body support ([#&#8203;821](https://github.com/benoitc/hackney/issues/821)). Functions passed to `send_body/2` now work correctly for iterative body streaming, supporting both stateless `fun() -> {ok, Data} | eof` and stateful `fun(State) -> {ok, Data, NewState} | eof` forms. ##### CI - Fix FreeBSD CI job by adding pcre2 package to resolve git linker error ### [`v3.0.2`](https://github.com/benoitc/hackney/releases/tag/3.0.2) [Compare Source](https://github.com/benoitc/hackney/compare/3.0.1...3.0.2) ##### Bug Fixes - Add default `Content-Type: application/octet-stream` header when sending a body without explicit Content-Type ([#&#8203;823](https://github.com/benoitc/hackney/issues/823)). This restores 1.x behavior and follows RFC 7231 recommendations. ##### Dependencies - Bump `certifi` to 2.16.0 ([#&#8203;824](https://github.com/benoitc/hackney/issues/824)) ### [`v3.0.1`](https://github.com/benoitc/hackney/compare/3.0.0...3.0.1) [Compare Source](https://github.com/benoitc/hackney/compare/3.0.0...3.0.1) ### [`v3.0.0`](https://github.com/benoitc/hackney/compare/2.0.1...3.0.0) [Compare Source](https://github.com/benoitc/hackney/compare/2.0.1...3.0.0) ### [`v2.0.1`](https://github.com/benoitc/hackney/compare/2.0.0...2.0.1) [Compare Source](https://github.com/benoitc/hackney/compare/2.0.0...2.0.1) ### [`v2.0.0`](https://github.com/benoitc/hackney/compare/1.25.0...2.0.0) [Compare Source](https://github.com/benoitc/hackney/compare/1.25.0...2.0.0) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi45Mi45IiwidXBkYXRlZEluVmVyIjoiNDMuNDYuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
chore(deps): update dependency hackney to v3
Some checks failed
Lint / Lint (pull_request) Failing after 52s
Nix check / check-nix (pull_request) Failing after 3m7s
7dc66386d5
MaidFox force-pushed renovate/hackney-3.x from 7dc66386d5
Some checks failed
Lint / Lint (pull_request) Failing after 52s
Nix check / check-nix (pull_request) Failing after 3m7s
to 5acb5f8c89
Some checks failed
Lint / Lint (pull_request) Failing after 1m24s
Nix check / check-nix (pull_request) Failing after 2m32s
2026-02-05 12:52:48 -08:00
Compare
MaidFox force-pushed renovate/hackney-3.x from 5acb5f8c89
Some checks failed
Lint / Lint (pull_request) Failing after 1m24s
Nix check / check-nix (pull_request) Failing after 2m32s
to 0d62636eed
All checks were successful
Lint / Lint (pull_request) Successful in 2m9s
Nix check / check-nix (pull_request) Successful in 3m38s
2026-02-23 14:34:32 -08:00
Compare
MaidFox force-pushed renovate/hackney-3.x from 0d62636eed
All checks were successful
Lint / Lint (pull_request) Successful in 2m9s
Nix check / check-nix (pull_request) Successful in 3m38s
to 8406ce2f71
All checks were successful
Lint / Lint (pull_request) Successful in 52s
Nix check / check-nix (pull_request) Successful in 2m38s
2026-03-03 12:02:22 -08:00
Compare
MaidFox force-pushed renovate/hackney-3.x from 8406ce2f71
All checks were successful
Lint / Lint (pull_request) Successful in 52s
Nix check / check-nix (pull_request) Successful in 2m38s
to 2ae40e2822
All checks were successful
Lint / Lint (pull_request) Successful in 2m22s
Nix check / check-nix (pull_request) Successful in 4m36s
2026-03-05 19:03:26 -08:00
Compare
MaidFox force-pushed renovate/hackney-3.x from 2ae40e2822
All checks were successful
Lint / Lint (pull_request) Successful in 2m22s
Nix check / check-nix (pull_request) Successful in 4m36s
to da74b18c98
All checks were successful
Lint / Lint (pull_request) Successful in 2m9s
Nix check / check-nix (pull_request) Successful in 3m52s
2026-03-09 22:20:27 -07:00
Compare
Doridian deleted branch renovate/hackney-3.x 2026-03-10 16:15:17 -07:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
SpaceAge/space_age_api!19
No description provided.