Feat: split compression features for Gzip and Brotli support #912
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hello there! This PR splits the
compression
feature into two:compression-brotli
(Brotli) andcompression-gzip
(Deflate and Gzip). As their names suggest, each feature is responsible for enabling support for their respective compression algorithms.This is done in an effort to minimize the
cargo tree
for those who do not intend to use one or the other. Allowing thewarp
consumer to choose which compression algorithms to support gives finer-grained control over their dependencies, which is nice!The
async-compression
crate pulls in thebrotli
crate when that feature is enabled. Similarly, it pulls in theflate2
crate when thedeflate
feature or thegzip
feature is enabled. Observe that thedeflate
andgzip
features have been merged as thecompression-gzip
feature inwarp
since they both indirectly pull in theflate2
crate anyway.In order to maintain backwards-compatibility, the
compression
feature is now set to enable bothcompression-brotli
andcompression-gzip
, which is the current behavior prior to this change.To that end, if there are any issues with this PR, I'd be glad to resolve them. Thanks! 🎉