-
Notifications
You must be signed in to change notification settings - Fork 833
Add Zstandard compression support to the compress plugin #12211
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: 10.0.x
Are you sure you want to change the base?
Conversation
5f12f8e
to
85ec4ab
Compare
@JakeChampion : Thank you for working on this. It looks like a few autests have output expectation issues. The
Also, the
|
We don't add new features to patch releases and we are not planning on having another minor release of 9.x. We are happy for you to use CI to verity the change and we can have someone look over the code for you. 9.2.x is currently our LTS release and we are doing new development on ATS 10.x. For example on out release versioning: major.minor.patch |
36cb81a
to
0547b04
Compare
This patch fixes the Accept-Encoding quality calculation logic in the HTTP transaction cache and updates test files to reflect the corrected behavior, removing workarounds for previously broken cache matching. Cache quality calculation improvements: - Replace multiplicative quality combining with minimum quality selection for multiple content encodings - Simplify wildcard matching to return quality directly - Remove gzip-specific fallback logic that bypassed normal quality calculation and caused inconsistent cache behavior Test updates for corrected behavior: - Remove NOTICE comments describing broken cache matching behavior - Update test expectations to match correct cache responses instead of workaround responses - Fix cache hit/miss expectations for multi-encoding scenarios - Add missing Content-Encoding headers in server responses - Update response identifiers to match the actual cached alternates Specific test corrections: - "br, compress, gzip" now correctly matches "Br-Gzip-Accept-Encoding" instead of falling back to "Gzip-Accept-Encoding" - "zstd, compress, gzip" now correctly matches "Zstd-Gzip-Accept-Encoding" instead of falling back to "Gzip-Accept-Encoding" - "zstd, gzip;q=0.8" now correctly matches "Zstd-Gzip-Accept-Encoding" instead of falling back to "Gzip-Accept-Encoding" - Individual encoding requests now create proper cache alternates instead of incorrectly matching empty encoding alternates The previous multiplicative quality calculation (q_a * q_b) was causing unexpectedly low quality scores and incorrect cache alternate selection. The new minimum quality approach ensures that multi-encoding responses are properly cached and matched according to HTTP content negotiation standards. All test cases now pass without workarounds and demonstrate correct cache behavior for all compression algorithms (gzip, brotli, zstd) across various Accept-Encoding
1eec47d
to
24eecbd
Compare
c576eb3
to
5c1c85e
Compare
630575e
to
c66d5db
Compare
… for compression encoding
c66d5db
to
b1f300c
Compare
49abe5a
to
4ef3d05
Compare
- Add support for configurable compression levels per host: * gzip-compression-level (1-9, default 6) * brotli-compression-level (0-11, default 6) * brotli-lgwin (10-24, default 16) * zstd-compression-level (1-22, default 12) This enables fine-tuning compression performance vs. speed trade-offs on a per-host basis
799a252
to
9dd2e2c
Compare
9dd2e2c
to
90bc687
Compare
This is a backport of #12201