finds.dev← search

// the find

elixir-mint/mint

★ 1,419 · Elixir · Apache-2.0 · updated Sep 2026

Functional HTTP client for Elixir with support for HTTP/1 and HTTP/2 🌱

Mint is a low-level HTTP/1 and HTTP/2 client for Elixir built around a stateless, immutable connection struct instead of a process — you own the socket and the message loop. It's for Elixir developers who want to build their own connection pooling/process architecture (or are already using something built on top, like Finch) rather than people who just want to call `get(url)` and get a response back.

The functional, process-less design is genuinely different from typical Erlang/Elixir HTTP clients (hackney, httpc) and lets you compose it into whatever architecture you need — one process per connection, one process managing many connections, etc. HTTP/2 support is real, with a dedicated frame-level implementation and its own fuzz tests, not just HTTP/1.1 with a protocol flag. Dependency footprint is tiny (optional castore for CA certs on older OTP), and the test suite includes fuzz testing for both the HTTP/1 and HTTP/2 parsers plus Dockerized proxy integration tests, which is more rigor than most HTTP libraries bother with.

No connection pooling, retries, or timeouts out of the box — that's explicitly pushed onto Finch, so if you reach for Mint directly you're probably going to end up rebuilding a chunk of what Finch already does. Active-mode socket handling means the caller has to manually pattern-match raw `:tcp`/`:ssl` messages and feed them through `stream/2`; it's a real jump from anything that returns a plain response struct. The stateless API (must thread the returned `conn` through every call) is a sharp edge the README itself has to call out with a wrong/correct example — nothing in the type system stops you from reusing a stale connection. No WebSocket support in the core package, you need the separate `mint_web_socket` library.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →