Faraday Gzip
The Gzip
middleware for Faraday 1 and 2 adds the necessary Accept-Encoding
headers and automatically decompresses the response. If the "Accept-Encoding" header isn't set in the request, it defaults to gzip,deflate
and appropriately handles the server's compressed response. This functionality resembles what Ruby does internally in Net::HTTP#get
. If Brotli is included in your Gemfile, the middleware also adds br
to the header for Brotli support.
Prerequisites
- faraday-gzip v3 supports only Faraday v2 and is tested with Ruby 3.0+ and JRuby 9.4
- faraday-gzip v2 supports Faraday v1 and v2 and is tested with Ruby 2.7+ and JRuby 9.4.
Installation
Add this line to your application's Gemfile:
gem 'faraday-gzip', '~> 3'
And then execute:
bundle install
Or install it yourself as:
gem install faraday-gzip
Usage
To enable the middleware in your Faraday connection, add it as shown below:
require 'faraday/gzip' # <=== Add this line
conn = Faraday.new(...) do |f|
f.request :gzip # <=== Add this line
# Additional configuration...
end
Development
To contribute or make changes:
- Clone the repo
- Run
bundle
to install dependencies - Implement your feature
- Write and run tests using
rspec .
- Use rake build to build the gem locally if needed
- Create a new PR with your changes
Contributing
Bug reports and pull requests are welcome on GitHub.
License
This gem is available as open source under the terms of the MIT License.