Http-tower-hs — A Rust Tower-inspired middleware library for Haskell
Haskell Community [Unofficial]
April 6, 2026
Following up on the monorepo refactoring I mentioned, the library is now published as three separate packages on Hackage:
* tower-hs — The generic Service/Middleware core. Protocol-agnostic middleware (retry, timeout, circuit breaker, hedge, filter,
tracing, logging, etc.). Not tied to HTTP at all, works with any req → IO (Either ServiceError res) service.
* http-tower-hs — HTTP client middleware built on tower-hs (bearer auth, headers, redirects, request IDs, status validation,
OTel tracing).
* servant-tower-hs — Servant ClientMiddleware adapter, so you can use the full tower-hs middleware stack with Servant clients,
plus servant-specific middleware.
The idea is that tower-hs is a standalone foundation you can use to wrap anything, a database client, a gRPC stub, a message queue, with the same resilience patterns. The HTTP and Servant packages layer on top with transport-specific concerns.
You can depend on just the packages you need, e.g. only tower-hs if you’re wrapping non-HTTP services.
Repo: GitHub - jarlah/tower-hs · GitHub
Discussion in the ATmosphere