v1.5.6
版本发布时间: 2024-03-31 02:57:28
facebook/zstd最新发布版本:v1.5.6(2024-03-31 02:57:28)
This release highlights the deployment of Google Chrome 123, introducing zstd-encoding
for Web traffic, introduced as a preferable option for compression of dynamic contents. With limited web server support for zstd-encoding
due to its novelty, we are launching an updated Zstandard version to facilitate broader adoption.
New stable parameter ZSTD_c_targetCBlockSize
Using zstd
compression for large documents over the Internet, data is segmented into smaller blocks of up to 128 KB, for incremental updates. This is crucial for applications like Chrome that process parts of documents as they arrive. However, on slow or congested networks, there can be some brief unresponsiveness in the middle of a block transmission, delaying update. To mitigate such scenarios, libzstd
introduces the new parameter ZSTD_c_targetCBlockSize
, enabling the division of blocks into even smaller segments to enhance initial byte delivery speed. Activating this feature incurs a cost, both runtime (equivalent to -2% speed at level 8) and a slight compression efficiency decrease (<0.1%), but offers some interesting latency reduction, notably beneficial in areas with less powerful network infrastructure.
Granular binary size selection
libzstd
provides build customization, including options to compile only the compression or decompression modules, minimizing binary size. Enhanced in v1.5.6
(source), it now allows for even finer control by enabling selective inclusion or exclusion of specific components within these modules. This advancement aids applications needing precise binary size management.
Miscellaneous Enhancements
This release includes various minor enhancements and bug fixes to enhance user experience. Key updates include an expanded list of recognized compressed file suffixes for the --exclude-compressed
flag, improving efficiency by skipping presumed incompressible content. Furthermore, compatibility has been broadened to include additional chipsets (sparc64
, ARM64EC
, risc-v
) and operating systems (QNX
, AIX
, Solaris
, HP-UX
).
Change Log
api: Promote ZSTD_c_targetCBlockSize
to Stable API by @felixhandte
api: new experimental ZSTD_d_maxBlockSize
parameter, to reduce streaming decompression memory, by @terrelln
perf: improve performance of param ZSTD_c_targetCBlockSize
, by @Cyan4973
perf: improved compression of arrays of integers at high compression, by @Cyan4973
lib: reduce binary size with selective built-time exclusion, by @felixhandte
lib: improved huffman speed on small data and linux kernel, by @terrelln
lib: accept dictionaries with partial literal tables, by @terrelln
lib: fix CCtx size estimation with external sequence producer, by @embg
lib: fix corner case decoder behaviors, by @Cyan4973 and @aimuz
lib: fix zdict prototype mismatch in static_only mode, by @ldv-alt
lib: fix several bugs in magicless-format decoding, by @embg
cli: add common compressed file types to --exclude-compressed
by @daniellerozenblit (requested by @dcog989)
cli: fix mixing -c
and -o
commands with --rm
, by @Cyan4973
cli: fix erroneous exclusion of hidden files with --output-dir-mirror
by @felixhandte
cli: improved time accuracy on BSD, by @felixhandte
cli: better errors on argument parsing, by @KapJI
tests: better compatibility with older versions of grep
, by @Cyan4973
tests: lorem ipsum generator as default content generator, by @Cyan4973
build: cmake improvements by @terrelln, @sighingnow, @gjasny, @JohanMabille, @Saverio976, @gruenich, @teo-tsirpanis
build: bazel support, by @jondo2010
build: fix cross-compiling for AArch64 with lld by @jcelerier
build: fix Apple platform compatibility, by @nidhijaju
build: fix Visual 2012 and lower compatibility, by @Cyan4973
build: improve win32 support, by @DimitriPapadopoulos
build: better C90 compliance for zlibWrapper, by @emaste
port: make: fat binaries on macos, by @mredig
port: ARM64EC compatibility for Windows, by @dunhor
port: QNX support by @klausholstjacobsen
port: MSYS2 and Cygwin makefile installation and test support, by @QBos07
port: risc-v support validation in CI, by @Cyan4973
port: sparc64 support validation in CI, by @Cyan4973
port: AIX compatibility, by @likema
port: HP-UX compatibility, by @likema
doc: Improved specification accuracy, by @elasota
bug: Fix and deprecate ZSTD_generateSequences (#3981), by @terrelln
Full change list (auto-generated)
- Add win32 to windows-artifacts.yml by @Kim-SSi in https://github.com/facebook/zstd/pull/3600
- Fix mmap-dict help output by @daniellerozenblit in https://github.com/facebook/zstd/pull/3601
- [oss-fuzz] Fix simple_round_trip fuzzer with overlapping decompression by @terrelln in https://github.com/facebook/zstd/pull/3612
- Reduce streaming decompression memory by (128KB - blockSizeMax) by @terrelln in https://github.com/facebook/zstd/pull/3616
- removed travis & appveyor scripts by @Cyan4973 in https://github.com/facebook/zstd/pull/3621
- Add ZSTD_d_maxBlockSize parameter by @terrelln in https://github.com/facebook/zstd/pull/3617
- [doc] add decoder errata paragraph by @Cyan4973 in https://github.com/facebook/zstd/pull/3620
- add makefile entry to build fat binary on macos by @mredig in https://github.com/facebook/zstd/pull/3614
- Disable unused variable warning in msan configurations by @danlark1 in https://github.com/facebook/zstd/pull/3624 https://github.com/facebook/zstd/pull/3634
- Allow Build-Time Exclusion of Individual Compression Strategies by @felixhandte in https://github.com/facebook/zstd/pull/3623
- Get zstd working with ARM64EC on Windows by @dunhor in https://github.com/facebook/zstd/pull/3636
- minor : update streaming_compression example by @Cyan4973 in https://github.com/facebook/zstd/pull/3631
- Fix UBSAN issue (zero addition to NULL) by @terrelln in https://github.com/facebook/zstd/pull/3658
- Add options in Makefile to cmake by @sighingnow in https://github.com/facebook/zstd/pull/3657
- fix a minor inefficiency in compress_superblock by @Cyan4973 in https://github.com/facebook/zstd/pull/3668
- Fixed a bug in the educational decoder by @Cyan4973 in https://github.com/facebook/zstd/pull/3659
- changed LLU suffix into ULL for Visual 2012 and lower by @Cyan4973 in https://github.com/facebook/zstd/pull/3664
- fixed decoder behavior when nbSeqs==0 is encoded using 2 bytes by @Cyan4973 in https://github.com/facebook/zstd/pull/3669
- detect extraneous bytes in the Sequences section by @Cyan4973 in https://github.com/facebook/zstd/pull/3674
- Bitstream produces only zeroes after an overflow event by @Cyan4973 in https://github.com/facebook/zstd/pull/3676
- Update FreeBSD CI images to latest supported releases by @emaste in https://github.com/facebook/zstd/pull/3684
- Clean up a false error message in the LDM debug log by @embg in https://github.com/facebook/zstd/pull/3686
- Hide ASM symbols on Apple platforms by @nidhijaju in https://github.com/facebook/zstd/pull/3688
- Changed the decoding loop to detect more invalid cases of corruption sooner by @Cyan4973 in https://github.com/facebook/zstd/pull/3677
- Fix Intel Xcode builds with assembly by @gjasny in https://github.com/facebook/zstd/pull/3665
- Save one byte on the frame epilogue by @Coder-256 in https://github.com/facebook/zstd/pull/3700
- Update fileio.c: fix build failure with enabled LTO by @LocutusOfBorg in https://github.com/facebook/zstd/pull/3695
- fileio_asyncio: handle malloc fails in AIO_ReadPool_create by @void0red in https://github.com/facebook/zstd/pull/3704
- Fix typographical error in README.md by @nikohoffren in https://github.com/facebook/zstd/pull/3701
- Fixed typo by @alexsifivetw in https://github.com/facebook/zstd/pull/3712
- Improve dual license wording in README by @terrelln in https://github.com/facebook/zstd/pull/3718
- Unpoison Workspace Memory Before Custom-Free by @felixhandte in https://github.com/facebook/zstd/pull/3725
- added ZSTD_decompressDCtx() benchmark option to fullbench by @Cyan4973 in https://github.com/facebook/zstd/pull/3726
- No longer reject dictionaries with literals maxSymbolValue < 255 by @terrelln in https://github.com/facebook/zstd/pull/3731
- fix: ZSTD_BUILD_DECOMPRESSION message by @0o001 in https://github.com/facebook/zstd/pull/3728
- Updated Makefiles for full MSYS2 and Cygwin installation and testing … by @QBos07 in https://github.com/facebook/zstd/pull/3720
- Work around nullptr-with-nonzero-offset warning by @terrelln in https://github.com/facebook/zstd/pull/3738
- Fix & refactor Huffman repeat tables for dictionaries by @terrelln in https://github.com/facebook/zstd/pull/3737
- zdictlib: fix prototype mismatch by @ldv-alt in https://github.com/facebook/zstd/pull/3733
- Fixed zstd cmake shared build on windows by @JohanMabille in https://github.com/facebook/zstd/pull/3739
- Added qnx in the posix test section of platform.h by @klausholstjacobsen in https://github.com/facebook/zstd/pull/3745
- added some documentation on ZSTD_estimate*Size() variants by @Cyan4973 in https://github.com/facebook/zstd/pull/3755
- Improve macro guards for ZSTD_assertValidSequence by @terrelln in https://github.com/facebook/zstd/pull/3770
- Stop suppressing pointer-overflow UBSAN errors by @terrelln in https://github.com/facebook/zstd/pull/3776
- fix x32 tests on Github CI by @Cyan4973 in https://github.com/facebook/zstd/pull/3777
- Fix new typos found by codespell by @DimitriPapadopoulos in https://github.com/facebook/zstd/pull/3771
- Do not test WIN32, instead test _WIN32 by @DimitriPapadopoulos in https://github.com/facebook/zstd/pull/3772
- Fix a very small formatting typo in the lib/README.md file by @dloidolt in https://github.com/facebook/zstd/pull/3763
- Fix pzstd Makefile to allow setting
DESTDIR
andBINDIR
separately by @paulmenzel in https://github.com/facebook/zstd/pull/3752 - Remove FlexArray pattern from ZSTDMT by @Cyan4973 in https://github.com/facebook/zstd/pull/3786
- solving flexArray issue #3785 in fse by @Cyan4973 in https://github.com/facebook/zstd/pull/3789
- Add doc on how to use it with cmake FetchContent by @Saverio976 in https://github.com/facebook/zstd/pull/3795
- Correct FSE probability bit consumption in specification by @elasota in https://github.com/facebook/zstd/pull/3806
- Add Bazel module instructions to README.md by @jondo2010 in https://github.com/facebook/zstd/pull/3812
- Clarify that a stream containing too many Huffman weights is invalid by @elasota in https://github.com/facebook/zstd/pull/3813
- [cmake] Require CMake version 3.5 or newer by @gruenich in https://github.com/facebook/zstd/pull/3807
- Three fixes for the Linux kernel by @terrelln in https://github.com/facebook/zstd/pull/3822
- [huf] Improve fast huffman decoding speed in linux kernel by @terrelln in https://github.com/facebook/zstd/pull/3826
- [huf] Improve fast C & ASM performance on small data by @terrelln in https://github.com/facebook/zstd/pull/3827
- update xxhash library to v0.8.2 by @Cyan4973 in https://github.com/facebook/zstd/pull/3820
- Modernize macros to use
do { } while (0)
by @terrelln in https://github.com/facebook/zstd/pull/3831 - Clarify that the presence of weight value 1 is required, and a lone implied 1 weight is invalid by @elasota in https://github.com/facebook/zstd/pull/3814
- Move offload API params into ZSTD_CCtx_params by @embg in https://github.com/facebook/zstd/pull/3839
- Update FreeBSD CI: drop 12.4 (nearly EOL) by @emaste in https://github.com/facebook/zstd/pull/3845
- Make offload API compatible with static CCtx by @embg in https://github.com/facebook/zstd/pull/3854
- zlibWrapper: convert to C89 / ANSI C by @emaste in https://github.com/facebook/zstd/pull/3846
- Fix a nullptr dereference in ZSTD_createCDict_advanced2() by @michoecho in https://github.com/facebook/zstd/pull/3847
- Cirrus-CI: Add FreeBSD 14 by @emaste in https://github.com/facebook/zstd/pull/3855
- CI: meson: use builtin handling for MSVC by @eli-schwartz in https://github.com/facebook/zstd/pull/3858
- cli: better errors on argument parsing by @KapJI in https://github.com/facebook/zstd/pull/3850
- Clarify that probability tables must not contain non-zero probabilities for invalid values by @elasota in https://github.com/facebook/zstd/pull/3817
- [x-compile] Fix cross-compiling for AArch64 with lld by @jcelerier in https://github.com/facebook/zstd/pull/3760
- playTests.sh does no longer needs grep -E by @Cyan4973 in https://github.com/facebook/zstd/pull/3865
- minor: playTests.sh more compatible with older versions of grep by @Cyan4973 in https://github.com/facebook/zstd/pull/3877
- disable Intel CET Compatibility tests by @Cyan4973 in https://github.com/facebook/zstd/pull/3884
- improve cmake test by @Cyan4973 in https://github.com/facebook/zstd/pull/3883
- add sparc64 compilation test by @Cyan4973 in https://github.com/facebook/zstd/pull/3886
- add a lorem ipsum generator by @Cyan4973 in https://github.com/facebook/zstd/pull/3890
- Update Dependency in Intel CET Test; Re-Enable Test by @felixhandte in https://github.com/facebook/zstd/pull/3893
- Improve compression of Arrays of Integers (High compression mode) by @Cyan4973 in https://github.com/facebook/zstd/pull/3895
- [Zstd] Less verbose log for patch mode. by @sandreenko in https://github.com/facebook/zstd/pull/3899
- fix 5921623844651008 by @Cyan4973 in https://github.com/facebook/zstd/pull/3900
- Fix fuzz issue 5131069967892480 by @Cyan4973 in https://github.com/facebook/zstd/pull/3902
- Advertise Availability of Security Vulnerability Notifications by @felixhandte in https://github.com/facebook/zstd/pull/3909
- updated setup-msys2 to v2.22.0 by @Cyan4973 in https://github.com/facebook/zstd/pull/3914
- Lorem Ipsum generator update by @Cyan4973 in https://github.com/facebook/zstd/pull/3913
- Reduce scope of variables by @gruenich in https://github.com/facebook/zstd/pull/3903
- Improve speed of ZSTD_c_targetCBlockSize by @Cyan4973 in https://github.com/facebook/zstd/pull/3915
- More regular block sizes with
targetCBlockSize
by @Cyan4973 in https://github.com/facebook/zstd/pull/3917 - removed sprintf usage from zstdcli.c by @Cyan4973 in https://github.com/facebook/zstd/pull/3916
- Export a
zstd::libzstd
CMake target if only static or dynamic linkage is specified. by @teo-tsirpanis in https://github.com/facebook/zstd/pull/3811 - fix version of actions/checkout by @Cyan4973 in https://github.com/facebook/zstd/pull/3926
- minor Makefile refactoring by @Cyan4973 in https://github.com/facebook/zstd/pull/3753
- lib/decompress: check for reserved bit corruption in zstd by @aimuz in https://github.com/facebook/zstd/pull/3840
- Fix state table formatting by @elasota in https://github.com/facebook/zstd/pull/3816
- Specify offset 0 as invalid and specify required fixup behavior by @elasota in https://github.com/facebook/zstd/pull/3824
- update -V documentation by @Cyan4973 in https://github.com/facebook/zstd/pull/3928
- fix LLU->ULL by @Cyan4973 in https://github.com/facebook/zstd/pull/3929
- Fix building xxhash on AIX 5.1 by @likema in https://github.com/facebook/zstd/pull/3860
- Fix building on HP-UX 11.11 PA-RISC by @likema in https://github.com/facebook/zstd/pull/3862
- Fix AsyncIO reading seed queueing by @yoniko in https://github.com/facebook/zstd/pull/3940
- Use ZSTD_LEGACY_SUPPORT=5 in "make test" by @embg in https://github.com/facebook/zstd/pull/3943
- Pin sanitizer CI jobs to ubuntu-20.04 by @embg in https://github.com/facebook/zstd/pull/3945
- chore: fix some typos by @acceptacross in https://github.com/facebook/zstd/pull/3949
- new method to deal with offset==0 erroneous edge case by @Cyan4973 in https://github.com/facebook/zstd/pull/3937
- add tests inspired from #2927 by @Cyan4973 in https://github.com/facebook/zstd/pull/3948
- cmake refactor: move HP-UX specific logic into its own function by @Cyan4973 in https://github.com/facebook/zstd/pull/3946
- Fix #3719 : mixing -c, -o and --rm by @Cyan4973 in https://github.com/facebook/zstd/pull/3942
- minor: fix incorrect debug level by @Cyan4973 in https://github.com/facebook/zstd/pull/3936
- add RISC-V emulation tests to Github CI by @Cyan4973 in https://github.com/facebook/zstd/pull/3934
- prevent XXH64 from being autovectorized by XXH512 by default by @Cyan4973 in https://github.com/facebook/zstd/pull/3933
- Stop Hardcoding the POSIX Version on BSDs by @felixhandte in https://github.com/facebook/zstd/pull/3952
- Convert the CircleCI workflow to a GitHub Actions workflow by @jk0 in https://github.com/facebook/zstd/pull/3901
- Add common compressed file types to --exclude-compressed by @daniellerozenblit in https://github.com/facebook/zstd/pull/3951
- Export ZSTD_LEGACY_SUPPORT in tests/Makefile by @embg in https://github.com/facebook/zstd/pull/3955
- Exercise ZSTD_findDecompressedSize() in the simple decompression fuzzer by @embg in https://github.com/facebook/zstd/pull/3959
- Update
ZSTD_RowFindBestMatch
comment by @yoniko in https://github.com/facebook/zstd/pull/3947 - Add the zeroSeq sample by @Cyan4973 in https://github.com/facebook/zstd/pull/3954
- [cpu] Backport fix for rbx clobbering on Windows with Clang by @terrelln in https://github.com/facebook/zstd/pull/3957
- Do not truncate file name in verbose mode by @Cyan4973 in https://github.com/facebook/zstd/pull/3956
- updated documentation by @Cyan4973 in https://github.com/facebook/zstd/pull/3958
- [asm][aarch64] Mark that BTI and PAC are supported by @terrelln in https://github.com/facebook/zstd/pull/3961
- Use
utimensat()
on FreeBSD by @felixhandte in https://github.com/facebook/zstd/pull/3960 - reduce the amount of #include in cover.h by @Cyan4973 in https://github.com/facebook/zstd/pull/3962
- Remove Erroneous Exclusion of Hidden Files and Folders in
--output-dir-mirror
by @felixhandte in https://github.com/facebook/zstd/pull/3963 - Promote
ZSTD_c_targetCBlockSize
Parameter to Stable API by @felixhandte in https://github.com/facebook/zstd/pull/3964 - [cmake] Always create libzstd target by @terrelln in https://github.com/facebook/zstd/pull/3965
- Remove incorrect docs regarding ZSTD_findFrameCompressedSize() by @embg in https://github.com/facebook/zstd/pull/3967
- add line number to debug traces by @Cyan4973 in https://github.com/facebook/zstd/pull/3966
- bump version number by @Cyan4973 in https://github.com/facebook/zstd/pull/3969
- Export zstd's public headers via BUILD_INTERFACE by @terrelln in https://github.com/facebook/zstd/pull/3968
- Fix bug with streaming decompression of magicless format by @embg in https://github.com/facebook/zstd/pull/3971
- pzstd: use c++14 without conditions by @kanavin in https://github.com/facebook/zstd/pull/3682
- Fix bugs in simple decompression fuzzer by @yoniko in https://github.com/facebook/zstd/pull/3978
- Fuzzing and bugfixes for magicless-format decoding by @embg in https://github.com/facebook/zstd/pull/3976
- Fix & fuzz ZSTD_generateSequences by @terrelln in https://github.com/facebook/zstd/pull/3981
- Fail on errors when building fuzzers by @yoniko in https://github.com/facebook/zstd/pull/3979
- [cmake] Emit warnings for contradictory build settings by @terrelln in https://github.com/facebook/zstd/pull/3975
- Document the process for adding a new fuzzer by @embg in https://github.com/facebook/zstd/pull/3982
- Fix -Werror=pointer-arith in fuzzers by @embg in https://github.com/facebook/zstd/pull/3983
- Doc update by @Cyan4973 in https://github.com/facebook/zstd/pull/3977
- v1.5.6 by @Cyan4973 in https://github.com/facebook/zstd/pull/3984
New Contributors
- @Kim-SSi made their first contribution in https://github.com/facebook/zstd/pull/3600
- @mredig made their first contribution in https://github.com/facebook/zstd/pull/3614
- @dunhor made their first contribution in https://github.com/facebook/zstd/pull/3636
- @sighingnow made their first contribution in https://github.com/facebook/zstd/pull/3657
- @nidhijaju made their first contribution in https://github.com/facebook/zstd/pull/3688
- @gjasny made their first contribution in https://github.com/facebook/zstd/pull/3665
- @Coder-256 made their first contribution in https://github.com/facebook/zstd/pull/3700
- @LocutusOfBorg made their first contribution in https://github.com/facebook/zstd/pull/3695
- @void0red made their first contribution in https://github.com/facebook/zstd/pull/3704
- @nikohoffren made their first contribution in https://github.com/facebook/zstd/pull/3701
- @alexsifivetw made their first contribution in https://github.com/facebook/zstd/pull/3712
- @0o001 made their first contribution in https://github.com/facebook/zstd/pull/3728
- @QBos07 made their first contribution in https://github.com/facebook/zstd/pull/3720
- @JohanMabille made their first contribution in https://github.com/facebook/zstd/pull/3739
- @klausholstjacobsen made their first contribution in https://github.com/facebook/zstd/pull/3745
- @Saverio976 made their first contribution in https://github.com/facebook/zstd/pull/3795
- @elasota made their first contribution in https://github.com/facebook/zstd/pull/3806
- @jondo2010 made their first contribution in https://github.com/facebook/zstd/pull/3812
- @gruenich made their first contribution in https://github.com/facebook/zstd/pull/3807
- @michoecho made their first contribution in https://github.com/facebook/zstd/pull/3847
- @KapJI made their first contribution in https://github.com/facebook/zstd/pull/3850
- @jcelerier made their first contribution in https://github.com/facebook/zstd/pull/3760
- @sandreenko made their first contribution in https://github.com/facebook/zstd/pull/3899
- @teo-tsirpanis made their first contribution in https://github.com/facebook/zstd/pull/3811
- @aimuz made their first contribution in https://github.com/facebook/zstd/pull/3840
- @acceptacross made their first contribution in https://github.com/facebook/zstd/pull/3949
- @jk0 made their first contribution in https://github.com/facebook/zstd/pull/3901
Full Changelog: https://github.com/facebook/zstd/compare/v1.5.5...v1.5.6
1、 zstd-1.5.6.tar.gz 2.3MB
2、 zstd-1.5.6.tar.gz.sha256 84B
3、 zstd-1.5.6.tar.gz.sig 858B
4、 zstd-1.5.6.tar.zst 1.76MB
5、 zstd-1.5.6.tar.zst.sha256 85B
6、 zstd-1.5.6.tar.zst.sig 858B
7、 zstd-v1.5.6-win32.zip 1.59MB
8、 zstd-v1.5.6-win64.zip 1.63MB