Skip to content

v0.2.0

Choose a tag to compare

@benoitc benoitc released this 04 Jun 09:26
· 50 commits to main since this release
acc573d

Closes the structural gap with Axum + Tower + Hyper: router composition, first-class shared state, and a composable HTTP client that mirrors the middleware model outbound, including load balancing across endpoints.

Added

  • Router composition: livery_router:nest/2,3 and merge/1,2.
  • First-class service config shared by every handler/middleware, read with livery_req:config/1,2,3.
  • Composable HTTP client (livery_client): timeout, retry, concurrency-limit, and circuit-breaker layers, streamed bodies both ways, and a livery_client_adapter behaviour (default livery_client_hackney, HTTP/1.1, HTTP/2, HTTP/3).
  • Client load balancing (livery_client:balance/1): power-of-two-choices or round-robin selection, passive outlier ejection, lazy half-open recovery, static or livery_client_discover pools, runtime add_endpoint/2 / remove_endpoint/2.
  • Bind to a specific listen address, including IPv6 (livery_inet), and reduced per-request overhead.
  • Cowboy cutover validation suite.

Changed

  • Wire dependencies on hex and bumped: quic 1.6.3, h2 0.8.0, webtransport 0.3.1, hackney 4.2.0, instrument 1.1.3.

Fixed

  • H1 query string handling.
  • Low-severity security hardening across the adapters.

Full changelog: https://github.com/benoitc/livery/blob/main/CHANGELOG.md