fidr
Peppermint - Easy to use process-less HTTP client build on Mint
I build an easy-to-use process-less HTTP client build on Mint. It should cover the basic needs, without needing to deep-dive into Mint itself.
Some examples:
GET
{:ok, %{status: 200, headers: headers, body: body}} =
Peppermint.get("http://httpbin.org/get?foo=bar")
POST
{:ok, %{status: 200, headers: headers, body: body}} =
Peppermint.post("http://httpbin.org/post", params: %{foo: "bar"})
POST JSON
{:ok, %{status: 200, headers: headers, body: body}} =
Peppermint.post("http://httpbin.org/post",
headers: [{"Content-Type", "application/json"}],
body: Jason.encode!(%{foo: "bar"})
)
Check the docs for more info.
I’m open to suggestions and feature requests, although I do try to keep it simple.
Let me know what you think!
Most Liked
fidr
Not a noob question at all. I find that I don’t need a pool for most of my use cases. If I do need one, I’d rather handle it myself.
A pool helps when you need to do multiple subsequent requests to the same host. You could spawn a new process for each request, but then you might overload the target with too many connections. A pool will limit the amount of connections to a single host and reuse connections to optimise throughput.
HTTPoison / hackney is actually pretty nice. It will keep a single connection open and re-use it for next requests. I just prefer Mint over hackney because of stability and correct SSL handling.
kodepett
Awesome library, I find myself making a one off request to an upstream server, most of the http clients maintained a connection pool to the server after the initial request which was unnecessary in this context.
Mint was too low level, I just stumbled across this library.
One reason to prefer a process-less over a process base will be the overhead of copying the response.
Thank you for the great work.







