chore(deps): update dependency hackney to v4 #35

Merged
Doridian merged 1 commit from renovate/hackney-4.x into main 2026-05-04 00:07:55 -07:00
Member

This PR contains the following updates:

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

Release Notes

benoitc/hackney (hackney)

v4.0.0: hackney 4.0.0

Compare Source

Hackney 4 trims the client down. The HTTP/2 and HTTP/3 stacks are now delegated to 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, Alt-Svc discovery (RFC 7838), and the same hackney:request/5 API as HTTP/1.1.

The bundled metrics subsystem is gone. 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. See the Middleware Guide and the HTTP/3 Guide.

Breaking

  • Removed hackney_metrics, hackney_metrics_backend, hackney_metrics_prometheus, hackney_metrics_dummy. The metrics_backend app env is no longer read. Migration recipes for prometheus and telemetry are in guides/middleware.md. Pool state is still observable through hackney_pool:get_stats/1.
  • HTTP/2 and HTTP/3 low-level message tags and modules moved to the new libraries. The user-facing hackney:request/5 API is unchanged.

What's new

  • Middleware chain (hackney_middleware): outermost-first composition, request rewrite, response rewrite, short-circuit, per-request or global config.
  • HTTP/3 via quic_h3: pure Erlang QUIC stack, no NIFs. ALPN-negotiated, opt-in with {protocols, [http3, http2, http1]} or application:set_env(hackney, default_protocols, [http3, http2, http1]).
  • Alt-Svc auto-discovery: server Alt-Svc headers are now parsed and cached on every response (HTTP/1.1, HTTP/2 and HTTP/3), so subsequent requests can upgrade to HTTP/3 transparently. Honors clear and merges multiple Alt-Svc headers per RFC 7230 §3.2.2.
  • HTTP/2 connection-pooling stability fixes for sustained concurrent load (#​836).

Deps

  • h2 0.4.0
  • quic 1.0.0

Full changelog: https://github.com/benoitc/hackney/blob/4.0.0/NEWS.md


Configuration

📅 Schedule: (UTC)

  • 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 Mend Renovate.

This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [hackney](https://hex.pm/packages/hackney) ([source](https://github.com/benoitc/hackney)) | prod | major | `~> 3.0` → `~> 4.0` | --- ### Release Notes <details> <summary>benoitc/hackney (hackney)</summary> ### [`v4.0.0`](https://github.com/benoitc/hackney/releases/tag/4.0.0): hackney 4.0.0 [Compare Source](https://github.com/benoitc/hackney/compare/3.2.1...4.0.0) Hackney 4 trims the client down. The HTTP/2 and HTTP/3 stacks are now delegated to [erlang\_h2](https://github.com/benoitc/erlang_h2) and [erlang\_quic](https://github.com/benoitc/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, Alt-Svc discovery (RFC 7838), and the same `hackney:request/5` API as HTTP/1.1. The bundled metrics subsystem is gone. 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. See the [Middleware Guide](https://github.com/benoitc/hackney/blob/4.0.0/guides/middleware.md) and the [HTTP/3 Guide](https://github.com/benoitc/hackney/blob/4.0.0/guides/http3_guide.md). #### Breaking - Removed `hackney_metrics`, `hackney_metrics_backend`, `hackney_metrics_prometheus`, `hackney_metrics_dummy`. The `metrics_backend` app env is no longer read. Migration recipes for prometheus and telemetry are in `guides/middleware.md`. Pool state is still observable through `hackney_pool:get_stats/1`. - HTTP/2 and HTTP/3 low-level message tags and modules moved to the new libraries. The user-facing `hackney:request/5` API is unchanged. #### What's new - **Middleware chain** (`hackney_middleware`): outermost-first composition, request rewrite, response rewrite, short-circuit, per-request or global config. - **HTTP/3 via `quic_h3`**: pure Erlang QUIC stack, no NIFs. ALPN-negotiated, opt-in with `{protocols, [http3, http2, http1]}` or `application:set_env(hackney, default_protocols, [http3, http2, http1])`. - **Alt-Svc auto-discovery**: server `Alt-Svc` headers are now parsed and cached on every response (HTTP/1.1, HTTP/2 and HTTP/3), so subsequent requests can upgrade to HTTP/3 transparently. Honors `clear` and merges multiple `Alt-Svc` headers per RFC 7230 §3.2.2. - HTTP/2 connection-pooling stability fixes for sustained concurrent load ([#&#8203;836](https://github.com/benoitc/hackney/issues/836)). #### Deps - `h2` 0.4.0 - `quic` 1.0.0 Full changelog: <https://github.com/benoitc/hackney/blob/4.0.0/NEWS.md> </details> --- ### Configuration 📅 **Schedule**: (UTC) - 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 [Mend Renovate](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzYuMiIsInVwZGF0ZWRJblZlciI6IjQzLjEzOS44IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
chore(deps): update dependency hackney to v4
Some checks failed
renovate/stability-days Updates have met minimum release age requirement
Lint / Lint (pull_request) Failing after 40s
Nix check / check-nix (pull_request) Successful in 4m6s
269b4e26c8
MaidFox force-pushed renovate/hackney-4.x from 269b4e26c8
Some checks failed
renovate/stability-days Updates have met minimum release age requirement
Lint / Lint (pull_request) Failing after 40s
Nix check / check-nix (pull_request) Successful in 4m6s
to 5e5004b07b
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Nix check / check-nix (pull_request) Successful in 1m23s
Lint / Lint (pull_request) Successful in 2m42s
2026-05-03 19:31:20 -07:00
Compare
Doridian deleted branch renovate/hackney-4.x 2026-05-04 00:07:55 -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!35
No description provided.