You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add Zstandard compression support and update tests (#12201)
* Add comprehensive zstd compression support to ATS
This patch adds full support for the zstd (Zstandard) compression
algorithm throughout Apache Traffic Server, including build system
integration, compression plugin support, Accept-Encoding header
normalization, and comprehensive test coverage.
Build system and dependencies:
- Add CMake support for finding zstd library with new Findzstd.cmake
- Update Docker build files to include libzstd-dev package
- Add TS_HAS_ZSTD feature flag for conditional compilation
Core compression support:
- Extend compress plugin to support zstd compression alongside gzip
and brotli
- Add zstd stream handling structures and functions
- Update compression configuration to include zstd in supported
algorithms list
- Add zstd compression type constant and related infrastructure
Accept-Encoding header normalization:
- Extend proxy.config.http.normalize_ae configuration to support
values 4 and 5 for zstd normalization
- Add zstd support to header normalization logic with proper
priority handling (zstd > br > gzip)
- Update HTTP transaction cache matching to handle zstd encoding
- Add zstd token to header parsing infrastructure
API and infrastructure:
- Add TS_HTTP_VALUE_ZSTD and TS_HTTP_LEN_ZSTD constants
- Update MIME field handling to recognize zstd encoding
- Add zstd support to traffic_layout feature detection
Test coverage:
- Expand compress plugin tests to cover zstd compression scenarios
- Add zstd test cases to Accept-Encoding normalization tests
- Update golden files to include zstd compression test results
- Add new compress3.config for zstd-specific plugin configuration
- Test all combinations of zstd, br, and gzip in various scenarios
The implementation follows RFC 8878 standards for zstd compression
and maintains backward compatibility with existing gzip and brotli
compression functionality. All tests pass and the feature is
properly integrated with the existing caching and content negotiation
mechanisms.
Co-authored-by: JosiahWI <[email protected]>
0 commit comments