Skip to content

The Gzip middleware for Faraday 1 and 2 adds appropriate Accept-Encoding`headers and automatically decompresses supported, non-streaming response bodies.

License

Notifications You must be signed in to change notification settings

bodrovis/faraday-gzip

Repository files navigation

Faraday Gzip

CI Gem Gem Total Downloads Maintainability Code Coverage

The Gzip middleware for Faraday 1 and 2 adds appropriate Accept-Encoding request headers and automatically decompresses supported response bodies (gzip, deflate, and optionally br). If the Accept-Encoding header is not explicitly set, it defaults to gzip,deflate and includes br when Brotli support is available. The middleware safely handles multiple and malformed Content-Encoding headers, and avoids modifying unsupported or streaming response bodies. This behavior is similar in spirit to Ruby's internal handling in Net::HTTP#get, while remaining conservative to preserve compatibility with Faraday adapters.

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.

About

The Gzip middleware for Faraday 1 and 2 adds appropriate Accept-Encoding`headers and automatically decompresses supported, non-streaming response bodies.

Topics

Resources

License

Stars

Watchers

Forks

Contributors 4

  •  
  •  
  •  
  •  

Languages