A flexible HTTP client library for Ruby with adapter abstraction and Rack middleware support.
Faraday is an HTTP client library for Ruby that provides an abstraction layer over multiple HTTP adapters with Rack middleware support. It solves the problem of HTTP client fragmentation by offering a unified interface while maintaining flexibility through its adapter system and middleware chain.
Ruby developers building API clients, web service libraries, or applications that need flexible HTTP communication with support for different backends and request/response manipulation.
Developers choose Faraday for its clean abstraction over HTTP adapters, powerful middleware architecture inspired by Rack, and comprehensive feature set including automatic parsing, persistent connections, and parallel requests—all while maintaining simplicity.
Simple, but flexible HTTP client library, with support for multiple backends.
Supports multiple backends like Net::HTTP, Typhoeus, and Patron, allowing seamless switching without code changes, as highlighted in the adapter support feature.
Uses Rack-inspired middleware for customizable request/response processing, enabling features like logging and authentication through a modular chain, central to its philosophy.
Handles JSON, XML, and YAML parsing automatically, simplifying API integration and reducing boilerplate code, as noted in the automatic parsing feature.
Includes persistent connections and parallel requests for improved HTTP efficiency, making it suitable for high-performance applications.
The layer of abstraction over adapters and middleware can introduce setup complexity and slight performance overhead compared to using a direct, simpler HTTP client.
Relies on community-maintained adapters and middleware from Awesome Faraday, which may lead to inconsistent support or slower updates for less common use cases.
Only supports Ruby 3.0 and above, as stated in the supported versions, making it incompatible with older Ruby environments without maintenance efforts.
:tada: Makes http fun again!
Simple HTTP and REST client for Ruby, inspired by microframework syntax for specifying actions.
Typhoeus wraps libcurl in order to make fast and reliable requests.
Rack Middleware for handling Cross-Origin Resource Sharing (CORS), which makes cross-origin AJAX possible.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.