<div dir="ltr">Hi all,<div><br></div><div>Where: <a href="https://github.com/puzza007/katipo">https://github.com/puzza007/katipo</a></div><div><br></div><div>What:</div><div><br></div><div>Katipo is an HTTP client for Erlang based on libcurl and libevent.</div><div><br></div><div>Why:</div><div><br></div><div>We wanted a very compatible HTTP client for Erlang.</div><div><br></div><div>How:</div><div><br></div><div>Implemented as a pool of port executables, each running an instance of libcurl-multi.</div><div><br></div><div>Usage:</div><div><br>{ok, _} = application:ensure_all_started(katipo).</div><div>Url = <<"<a href="https://testurl.com">https://testurl.com</a>">>.</div><div>ReqHeaders = [{<<"User-Agent">>, <<"katipo">>}].</div><div>Opts = #{headers => ReqHeaders,</div><div>               body => <<"0d5cb3c25b0c5678d5297efa448e1938">>,</div><div>               connecttimeout_ms => 5000},</div><div>{ok, #{status := 200,</div><div>          headers := RespHeaders,</div><div>          cookiejar := CookieJar,</div><div>          body := RespBody}} = katipo:post(Url, Opts).<br><br>Status:</div><div><br> The current status is alpha, with basic functionality working for OTP 18.  There's still plenty from libcurl that can be exposed.  Upcoming features are OTP 17.x support and the ability to stream responses to clients.</div><div><br></div><div><br></div></div>