Home

Awesome

Awesome Faraday

A curated list of awesome middleware and adapters for Faraday. If you want your adapter or middleware to feature in this list, please open a discussion or a PR.

Adapters

Faraday allows you to change the adapter, the element in the stack responsible for performing the HTTP request, with ease, by the combination of a standardised API to provide configuration and request details, and a powerful set of middleware. However, each adapter can also offer unique features, or lack the support for others. The following table show the available adapters and which features they support.

AdapterBundled with FaradayReason Phrase parsingCompression (Gzip, Deflate)Response StreamingParallel RequestsGET, HEAD, DELETE, TRACE Request BodyHEAD Response BodyTRACE MethodLocal Socket Binding
Async::HTTP::Faraday✖️✔️✔️✔️✔️✔️✔️✔️✔️
EM::HTTPv1 only✔️✖️✖️✔️✔️✖️✔️✔️
EM::Synchronyv1 only✔️✖️✖️✔️✔️✖️✔️✔️
Exconv1 only✔️✖️✖️✖️✔️✔️✔️✖️
HttpClientv1 only✔️✔️✖️✖️✔️✔️✔️✔️
Net::HTTP✔️✔️✔️✔️✖️✔️✔️✔️✖️
Net::HTTP::Persistentv1 only✔️✔️✔️✖️✔️✔️✔️✖️
Patronv1 only✔️✖️✖️✖️✖️✔️✖️✖️
Typhoeusv1 only✔️✔️✔️✔️✔️✔️✔️✖️
HTTP.rb✖️✔️✖️✔️✖️✔️✖️✔️✔️
httpx✖️✔️✔️✔️✔️✔️✔️✔️✔️

Middleware

Under the hood, Faraday uses a Rack-inspired middleware stack for making requests. Much of Faraday’s power is unlocked with custom middleware. Some middleware is included with Faraday, and others are in external gems. Learn more about Middleware.

In addition to this curated list of middleware, we would like to specifically call your attention to middleware that is helpful for general HTTP use:

Awesome Community Middleware

Included with faraday itself

Bundled into their own gems

faraday_middleware gem

ATTENTION: faraday_middleware have been deprecated and won't be updated to work on Faraday 2.0. All the middleware below will need to be moved into their own gems.

Has been moved into community gems (see list above):

Tooling