v0.2.0
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,3andmerge/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 alivery_client_adapterbehaviour (defaultlivery_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 orlivery_client_discoverpools, runtimeadd_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:
quic1.6.3,h20.8.0,webtransport0.3.1,hackney4.2.0,instrument1.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