ycastor
Quiver - An Efficient HTTP Client in Elixir
A couple weeks ago i decided to learn a bit more about HTTP and got the urges of starting a new http client from scratch, so i built Quiver, the idea was pretty much a toy project, albeit there are still some RFC stuff missing, the results are pretty good. I inspired myself quite a bit in hackney and finch, but with some pet peeves of my own. I tried to benchmark it as fair as possible against Finch, the benchee results are in the repo.
Features
- HTTP/1.1 and HTTP/2 – automatic protocol handling with TLS+ALPN
- Connection pooling – NimblePool for HTTP/1, GenStateMachine coordinator for HTTP/2
- Streaming responses – lazy body streams for large payloads and SSE
- Origin-based routing – exact, wildcard, and default pool rules per origin
- Structured errors – three error classes (transient, invalid, unrecoverable)
- Telemetry – request spans, connection lifecycle, and pool queue depth events
- Supervised – pools start lazily and live under your application’s supervision tree
Now, the next item in my roadmap is to implement HTTP/3 support, maybe starting with quicer.
Most Liked
kevinschweikert
I recommend using GitHub - benoitc/erlang_quic: Pure Erlang QUIC implementation (RFC 9000) · GitHub because it’s not using any NIFs which quicer does. It’s also used for the QUIC implementation in Hackney
ycastor
Quiver 0.3.0 released!
What’s new:
- Initial support for HTTP/3
- HTTP/3 Datagrams
- Minor stability improvements
Last Post!
ycastor
Quiver 0.4.0 released!
What’s new:
- Implemented Support for Early Data / 0-RTT
- Updated erlang_quic to 1.6.3
- Fixed HTTP/3 and HTTP/2 Pool Stability
Popular in Announcing
Other popular topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #elixirconf-us
- #advent-of-code
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #hex









