itzmidinesh
Preferred HTTP library: Req or HTTPoison?
Hi all,
I’m working on a Phoenix project where I need to make external HTTP requests and I’m trying to choose between Req and HTTPoison.
Req looks modern and composable, which is appealing. But, HTTPoison has been around for a long time and seems to be a battle-tested choice. I also noticed that HTTPoison has only one dependency which makes it attractive for keeping things lightweight.
I’d love to hear what the community prefers in 2025:
- Which library do you use and why?
- Any caveats, issues or limitations you’ve run into with either?
Thanks in advance!
Marked As Solved
sabiwara
You might want to read this deep-dive on the topic:
I also noticed that
HTTPoisonhas only one dependency which makes it attractive for keeping things lightweight.
It may have only one direct dependency (:hackney), but :hackney itself comes with several dependencies (mentioned in the article above too).
Also Liked
garrison
I would go with Req for new projects at this point. It has a wonderful API and buy-in from the right people, so we know it will be used and maintained. The only downside is it’s still not a stable release, but it’s been pretty stable for the last year or so now so I don’t expect any substantial breaking changes or anything at this point. I’ve personally switched over (I was previously rolling my own on top of Finch) and the batteries-included API is very nice.
Also: Req is a pure-Elixir stack underneath (Finch, Mint). Which doesn’t really matter but it’s cool!
adamu
Tesla is pretty underrated IMO, and it no longer “relies a bit too much on module-based configuration and meta-programming”, citied as downsides in that article.
Popular in Questions
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
- #javascript
- #code-sync
- #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
- #advent-of-code
- #elixirconf-us
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #performance









