HTTP libraries

Ruby’s built-in library: Net/HTTP and gems that powers Net/HTTP:

REST Client, httparty, and Nestful.

curb, EM-HTTP-Request, Patron, and Typhoeus.

EM-Synchrony, excon, Faraday, httpclient, HTTPX, and net-http2.



There are probably many more I did not know about, what should we choose?

...Don’t worry, it’s very easy to evaluate.

Let’s rule out gems that do not comes with what we want:

httparty does not have Keep-Alice support (you need persistent_httparty to keep the party alive). REST Client uses too much memory and currently the slowest. EM-* also requires multiple gems. Net/HTTP’s API is not very easy to use.

Now we still have many libraries to choose from. How about we consider some of HTTP/2 features? Now we left with only HTTPX...

See HTTPX wiki.