xref: /freebsd/sys/contrib/zstd/CHANGELOG (revision 9cbefe25d46756f342c7dd3d174d2d1103808f21)
1*9cbefe25SConrad Meyerv1.4.4
2*9cbefe25SConrad Meyerperf: Improved decompression speed, by > 10%, by @terrelln
3*9cbefe25SConrad Meyerperf: Better compression speed when re-using a context, by @felixhandte
4*9cbefe25SConrad Meyerperf: Fix compression ratio when compressing large files with small dictionary, by @senhuang42
5*9cbefe25SConrad Meyerperf: zstd reference encoder can generate RLE blocks, by @bimbashrestha
6*9cbefe25SConrad Meyerperf: minor generic speed optimization, by @davidbolvansky
7*9cbefe25SConrad Meyerapi: new ability to extract sequences from the parser for analysis, by @bimbashrestha
8*9cbefe25SConrad Meyerapi: fixed decoding of magic-less frames, by @terrelln
9*9cbefe25SConrad Meyerapi: fixed ZSTD_initCStream_advanced() performance with fast modes, reported by @QrczakMK
10*9cbefe25SConrad Meyercli: Named pipes support, by @bimbashrestha
11*9cbefe25SConrad Meyercli: short tar's extension support, by @stokito
12*9cbefe25SConrad Meyercli: command --output-dir-flat= , generates target files into requested directory, by @senhuang42
13*9cbefe25SConrad Meyercli: commands --stream-size=# and --size-hint=#, by @nmagerko
14*9cbefe25SConrad Meyercli: command --exclude-compressed, by @shashank0791
15*9cbefe25SConrad Meyercli: faster `-t` test mode
16*9cbefe25SConrad Meyercli: improved some error messages, by @vangyzen
17*9cbefe25SConrad Meyercli: rare deadlock condition within dictionary builder, by @terrelln
18*9cbefe25SConrad Meyerbuild: single-file decoder with emscripten compilation script, by @cwoffenden
19*9cbefe25SConrad Meyerbuild: fixed zlibWrapper compilation on Visual Studio, reported by @bluenlive
20*9cbefe25SConrad Meyerbuild: fixed deprecation warning for certain gcc version, reported by @jasonma163
21*9cbefe25SConrad Meyerbuild: fix compilation on old gcc versions, by @cemeyer
22*9cbefe25SConrad Meyerbuild: improved installation directories for cmake script, by Dmitri Shubin
23*9cbefe25SConrad Meyerpack: modified pkgconfig, for better integration into openwrt, requested by @neheb
24*9cbefe25SConrad Meyermisc: Improved documentation : ZSTD_CLEVEL, DYNAMIC_BMI2, ZSTD_CDict, function deprecation, zstd format
25*9cbefe25SConrad Meyermisc: fixed educational decoder : accept larger literals section, and removed UNALIGNED() macro
26*9cbefe25SConrad Meyer
27*9cbefe25SConrad Meyerv1.4.3
28*9cbefe25SConrad Meyerbug: Fix Dictionary Compression Ratio Regression by @cyan4973 (#1709)
29*9cbefe25SConrad Meyerbug: Fix Buffer Overflow in legacy v0.3 decompression by @felixhandte (#1722)
30*9cbefe25SConrad Meyerbuild: Add support for IAR C/C++ Compiler for Arm by @joseph0918 (#1705)
31*9cbefe25SConrad Meyer
324d3f1eafSConrad Meyerv1.4.2
334d3f1eafSConrad Meyerbug: Fix bug in zstd-0.5 decoder by @terrelln (#1696)
344d3f1eafSConrad Meyerbug: Fix seekable decompression in-memory API by @iburinoc (#1695)
354d3f1eafSConrad Meyermisc: Validate blocks are smaller than size limit by @vivekmg (#1685)
364d3f1eafSConrad Meyermisc: Restructure source files by @ephiepark (#1679)
374d3f1eafSConrad Meyer
384d3f1eafSConrad Meyerv1.4.1
394d3f1eafSConrad Meyerbug: Fix data corruption in niche use cases by @terrelln (#1659)
404d3f1eafSConrad Meyerbug: Fuzz legacy modes, fix uncovered bugs by @terrelln (#1593, #1594, #1595)
414d3f1eafSConrad Meyerbug: Fix out of bounds read by @terrelln (#1590)
424d3f1eafSConrad Meyerperf: Improve decode speed by ~7% @mgrice (#1668)
434d3f1eafSConrad Meyerperf: Slightly improved compression ratio of level 3 and 4 (ZSTD_dfast) by @cyan4973 (#1681)
444d3f1eafSConrad Meyerperf: Slightly faster compression speed when re-using a context by @cyan4973 (#1658)
454d3f1eafSConrad Meyerperf: Improve compression ratio for small windowLog by @cyan4973 (#1624)
464d3f1eafSConrad Meyerperf: Faster compression speed in high compression mode for repetitive data by @terrelln (#1635)
474d3f1eafSConrad Meyerapi: Add parameter to generate smaller dictionaries by @tyler-tran (#1656)
484d3f1eafSConrad Meyercli: Recognize symlinks when built in C99 mode by @felixhandte (#1640)
494d3f1eafSConrad Meyercli: Expose cpu load indicator for each file on -vv mode by @ephiepark (#1631)
504d3f1eafSConrad Meyercli: Restrict read permissions on destination files by @chungy (#1644)
514d3f1eafSConrad Meyercli: zstdgrep: handle -f flag by @felixhandte (#1618)
524d3f1eafSConrad Meyercli: zstdcat: follow symlinks by @vejnar (#1604)
534d3f1eafSConrad Meyerdoc: Remove extra size limit on compressed blocks by @felixhandte (#1689)
544d3f1eafSConrad Meyerdoc: Fix typo by @yk-tanigawa (#1633)
554d3f1eafSConrad Meyerdoc: Improve documentation on streaming buffer sizes by @cyan4973 (#1629)
564d3f1eafSConrad Meyerbuild: CMake: support building with LZ4 @leeyoung624 (#1626)
574d3f1eafSConrad Meyerbuild: CMake: install zstdless and zstdgrep by @leeyoung624 (#1647)
584d3f1eafSConrad Meyerbuild: CMake: respect existing uninstall target by @j301scott (#1619)
594d3f1eafSConrad Meyerbuild: Make: skip multithread tests when built without support by @michaelforney (#1620)
604d3f1eafSConrad Meyerbuild: Make: Fix examples/ test target by @sjnam (#1603)
614d3f1eafSConrad Meyerbuild: Meson: rename options out of deprecated namespace by @lzutao (#1665)
624d3f1eafSConrad Meyerbuild: Meson: fix build by @lzutao (#1602)
634d3f1eafSConrad Meyerbuild: Visual Studio: don't export symbols in static lib by @scharan (#1650)
644d3f1eafSConrad Meyerbuild: Visual Studio: fix linking by @absotively (#1639)
654d3f1eafSConrad Meyerbuild: Fix MinGW-W64 build by @myzhang1029 (#1600)
664d3f1eafSConrad Meyermisc: Expand decodecorpus coverage by @ephiepark (#1664)
674d3f1eafSConrad Meyer
682b9c00cbSConrad Meyerv1.4.0
692b9c00cbSConrad Meyerperf: Improve level 1 compression speed in most scenarios by 6% by @gbtucker and @terrelln
702b9c00cbSConrad Meyerapi: Move the advanced API, including all functions in the staging section, to the stable section
712b9c00cbSConrad Meyerapi: Make ZSTD_e_flush and ZSTD_e_end block for maximum forward progress
722b9c00cbSConrad Meyerapi: Rename ZSTD_CCtxParam_getParameter to ZSTD_CCtxParams_getParameter
732b9c00cbSConrad Meyerapi: Rename ZSTD_CCtxParam_setParameter to ZSTD_CCtxParams_setParameter
742b9c00cbSConrad Meyerapi: Don't export ZSTDMT functions from the shared library by default
752b9c00cbSConrad Meyerapi: Require ZSTD_MULTITHREAD to be defined to use ZSTDMT
762b9c00cbSConrad Meyerapi: Add ZSTD_decompressBound() to provide an upper bound on decompressed size by @shakeelrao
772b9c00cbSConrad Meyerapi: Fix ZSTD_decompressDCtx() corner cases with a dictionary
782b9c00cbSConrad Meyerapi: Move ZSTD_getDictID_*() functions to the stable section
792b9c00cbSConrad Meyerapi: Add ZSTD_c_literalCompressionMode flag to enable or disable literal compression by @terrelln
802b9c00cbSConrad Meyerapi: Allow compression parameters to be set when a dictionary is used
812b9c00cbSConrad Meyerapi: Allow setting parameters before or after ZSTD_CCtx_loadDictionary() is called
822b9c00cbSConrad Meyerapi: Fix ZSTD_estimateCStreamSize_usingCCtxParams()
832b9c00cbSConrad Meyerapi: Setting ZSTD_d_maxWindowLog to 0 means use the default
842b9c00cbSConrad Meyercli: Ensure that a dictionary is not used to compress itself by @shakeelrao
852b9c00cbSConrad Meyercli: Add --[no-]compress-literals flag to enable or disable literal compression
862b9c00cbSConrad Meyerdoc: Update the examples to use the advanced API
872b9c00cbSConrad Meyerdoc: Explain how to transition from old streaming functions to the advanced API in the header
882b9c00cbSConrad Meyerbuild: Improve the Windows release packages
892b9c00cbSConrad Meyerbuild: Improve CMake build by @hjmjohnson
902b9c00cbSConrad Meyerbuild: Build fixes for FreeBSD by @lwhsu
912b9c00cbSConrad Meyerbuild: Remove redundant warnings by @thatsafunnyname
922b9c00cbSConrad Meyerbuild: Fix tests on OpenBSD by @bket
932b9c00cbSConrad Meyerbuild: Extend fuzzer build system to work with the new clang engine
942b9c00cbSConrad Meyerbuild: CMake now creates the libzstd.so.1 symlink
952b9c00cbSConrad Meyerbuild: Improve Menson build by @lzutao
962b9c00cbSConrad Meyermisc: Fix symbolic link detection on FreeBSD
972b9c00cbSConrad Meyermisc: Use physical core count for -T0 on FreeBSD by @cemeyer
982b9c00cbSConrad Meyermisc: Fix zstd --list on truncated files by @kostmo
992b9c00cbSConrad Meyermisc: Improve logging in debug mode by @felixhandte
1002b9c00cbSConrad Meyermisc: Add CirrusCI tests by @lwhsu
1012b9c00cbSConrad Meyermisc: Optimize dictionary memory usage in corner cases
1022b9c00cbSConrad Meyermisc: Improve the dictionary builder on small or homogeneous data
1032b9c00cbSConrad Meyermisc: Fix spelling across the repo by @jsoref
1042b9c00cbSConrad Meyer
1052b9c00cbSConrad Meyerv1.3.8
1062b9c00cbSConrad Meyerperf: better decompression speed on large files (+7%) and cold dictionaries (+15%)
1072b9c00cbSConrad Meyerperf: slightly better compression ratio at high compression modes
1082b9c00cbSConrad Meyerapi : finalized advanced API, last stage before "stable" status
1092b9c00cbSConrad Meyerapi : new --rsyncable mode, by @terrelln
1102b9c00cbSConrad Meyerapi : support decompression of empty frames into NULL (used to be an error) (#1385)
1112b9c00cbSConrad Meyerbuild: new set of macros to build a minimal size decoder, by @felixhandte
1122b9c00cbSConrad Meyerbuild: fix compilation on MIPS32, reported by @clbr (#1441)
1132b9c00cbSConrad Meyerbuild: fix compilation with multiple -arch flags, by @ryandesign
1142b9c00cbSConrad Meyerbuild: highly upgraded meson build, by @lzutao
1152b9c00cbSConrad Meyerbuild: improved buck support, by @obelisk
1162b9c00cbSConrad Meyerbuild: fix cmake script : can create debug build, by @pitrou
1172b9c00cbSConrad Meyerbuild: Makefile : grep works on both colored consoles and systems without color support
1182b9c00cbSConrad Meyerbuild: fixed zstd-pgo, by @bmwiedemann
1192b9c00cbSConrad Meyercli : support ZSTD_CLEVEL environment variable, by @yijinfb (#1423)
1202b9c00cbSConrad Meyercli : --no-progress flag, preserving final summary (#1371), by @terrelln
1212b9c00cbSConrad Meyercli : ensure destination file is not source file (#1422)
1222b9c00cbSConrad Meyercli : clearer error messages, especially when input file not present
1232b9c00cbSConrad Meyerdoc : clarified zstd_compression_format.md, by @ulikunitz
1242b9c00cbSConrad Meyermisc: fixed zstdgrep, returns 1 on failure, by @lzutao
1252b9c00cbSConrad Meyermisc: NEWS renamed as CHANGELOG, in accordance with fboss
1262b9c00cbSConrad Meyer
1272b9c00cbSConrad Meyerv1.3.7
1282b9c00cbSConrad Meyerperf: slightly better decompression speed on clang (depending on hardware target)
1292b9c00cbSConrad Meyerfix : performance of dictionary compression for small input < 4 KB at levels 9 and 10
1302b9c00cbSConrad Meyerbuild: no longer build backtrace by default in release mode; restrict further automatic mode
1312b9c00cbSConrad Meyerbuild: control backtrace support through build macro BACKTRACE
1322b9c00cbSConrad Meyermisc: added man pages for zstdless and zstdgrep, by @samrussell
1332b9c00cbSConrad Meyer
1342b9c00cbSConrad Meyerv1.3.6
1352b9c00cbSConrad Meyerperf: much faster dictionary builder, by @jenniferliu
1362b9c00cbSConrad Meyerperf: faster dictionary compression on small data when using multiple contexts, by @felixhandte
1372b9c00cbSConrad Meyerperf: faster dictionary decompression when using a very large number of dictionaries simultaneously
1382b9c00cbSConrad Meyercli : fix : does no longer overwrite destination when source does not exist (#1082)
1392b9c00cbSConrad Meyercli : new command --adapt, for automatic compression level adaptation
1402b9c00cbSConrad Meyerapi : fix : block api can be streamed with > 4 GB, reported by @catid
1412b9c00cbSConrad Meyerapi : reduced ZSTD_DDict size by 2 KB
1422b9c00cbSConrad Meyerapi : minimum negative compression level is defined, and can be queried using ZSTD_minCLevel().
1432b9c00cbSConrad Meyerbuild: support Haiku target, by @korli
1442b9c00cbSConrad Meyerbuild: Read Legacy format is limited to v0.5+ by default. Can be changed at compile time with macro ZSTD_LEGACY_SUPPORT.
1452b9c00cbSConrad Meyerdoc : zstd_compression_format.md updated to match wording in IETF RFC 8478
1462b9c00cbSConrad Meyermisc: tests/paramgrill, a parameter optimizer, by @GeorgeLu97
1472b9c00cbSConrad Meyer
1482b9c00cbSConrad Meyerv1.3.5
1492b9c00cbSConrad Meyerperf: much faster dictionary compression, by @felixhandte
1502b9c00cbSConrad Meyerperf: small quality improvement for dictionary generation, by @terrelln
1512b9c00cbSConrad Meyerperf: slightly improved high compression levels (notably level 19)
1522b9c00cbSConrad Meyermem : automatic memory release for long duration contexts
1532b9c00cbSConrad Meyercli : fix : overlapLog can be manually set
1542b9c00cbSConrad Meyercli : fix : decoding invalid lz4 frames
1552b9c00cbSConrad Meyerapi : fix : performance degradation for dictionary compression when using advanced API, by @terrelln
1562b9c00cbSConrad Meyerapi : change : clarify ZSTD_CCtx_reset() vs ZSTD_CCtx_resetParameters(), by @terrelln
1572b9c00cbSConrad Meyerbuild: select custom libzstd scope through control macros, by @GeorgeLu97
1582b9c00cbSConrad Meyerbuild: OpenBSD patch, by @bket
1592b9c00cbSConrad Meyerbuild: make and make all are compatible with -j
1602b9c00cbSConrad Meyerdoc : clarify zstd_compression_format.md, updated for IETF RFC process
1612b9c00cbSConrad Meyermisc: pzstd compatible with reproducible compilation, by @lamby
1622b9c00cbSConrad Meyer
1632b9c00cbSConrad Meyerv1.3.4
1642b9c00cbSConrad Meyerperf: faster speed (especially decoding speed) on recent cpus (haswell+)
1652b9c00cbSConrad Meyerperf: much better performance associating --long with multi-threading, by @terrelln
1662b9c00cbSConrad Meyerperf: better compression at levels 13-15
1672b9c00cbSConrad Meyercli : asynchronous compression by default, for faster experience (use --single-thread for former behavior)
1682b9c00cbSConrad Meyercli : smoother status report in multi-threading mode
1692b9c00cbSConrad Meyercli : added command --fast=#, for faster compression modes
1702b9c00cbSConrad Meyercli : fix crash when not overwriting existing files, by Pádraig Brady (@pixelb)
1712b9c00cbSConrad Meyerapi : `nbThreads` becomes `nbWorkers` : 1 triggers asynchronous mode
1722b9c00cbSConrad Meyerapi : compression levels can be negative, for even more speed
1732b9c00cbSConrad Meyerapi : ZSTD_getFrameProgression() : get precise progress status of ZSTDMT anytime
1742b9c00cbSConrad Meyerapi : ZSTDMT can accept new compression parameters during compression
1752b9c00cbSConrad Meyerapi : implemented all advanced dictionary decompression prototypes
1762b9c00cbSConrad Meyerbuild: improved meson recipe, by Shawn Landden (@shawnl)
1772b9c00cbSConrad Meyerbuild: VS2017 scripts, by @HaydnTrigg
1782b9c00cbSConrad Meyermisc: all /contrib projects fixed
1792b9c00cbSConrad Meyermisc: added /contrib/docker script by @gyscos
1802b9c00cbSConrad Meyer
1812b9c00cbSConrad Meyerv1.3.3
1822b9c00cbSConrad Meyerperf: faster zstd_opt strategy (levels 16-19)
1832b9c00cbSConrad Meyerfix : bug #944 : multithreading with shared ditionary and large data, reported by @gsliepen
1842b9c00cbSConrad Meyercli : fix : content size written in header by default
1852b9c00cbSConrad Meyercli : fix : improved LZ4 format support, by @felixhandte
1862b9c00cbSConrad Meyercli : new : hidden command `-S`, to benchmark multiple files while generating one result per file
1872b9c00cbSConrad Meyerapi : fix : support large skippable frames, by @terrelln
1882b9c00cbSConrad Meyerapi : fix : streaming interface was adding a useless 3-bytes null block to small frames
1892b9c00cbSConrad Meyerapi : change : when setting `pledgedSrcSize`, use `ZSTD_CONTENTSIZE_UNKNOWN` macro value to mean "unknown"
1902b9c00cbSConrad Meyerbuild: fix : compilation under rhel6 and centos6, reported by @pixelb
1912b9c00cbSConrad Meyerbuild: added `check` target
1922b9c00cbSConrad Meyer
1932b9c00cbSConrad Meyerv1.3.2
1942b9c00cbSConrad Meyernew : long range mode, using --long command, by Stella Lau (@stellamplau)
1952b9c00cbSConrad Meyernew : ability to generate and decode magicless frames (#591)
1962b9c00cbSConrad Meyerchanged : maximum nb of threads reduced to 200, to avoid address space exhaustion in 32-bits mode
1972b9c00cbSConrad Meyerfix : multi-threading compression works with custom allocators
1982b9c00cbSConrad Meyerfix : ZSTD_sizeof_CStream() was over-evaluating memory usage
1992b9c00cbSConrad Meyerfix : a rare compression bug when compression generates very large distances and bunch of other conditions (only possible at --ultra -22)
2002b9c00cbSConrad Meyerfix : 32-bits build can now decode large offsets (levels 21+)
2012b9c00cbSConrad Meyercli : added LZ4 frame support by default, by Felix Handte (@felixhandte)
2022b9c00cbSConrad Meyercli : improved --list output
2032b9c00cbSConrad Meyercli : new : can split input file for dictionary training, using command -B#
2042b9c00cbSConrad Meyercli : new : clean operation artefact on Ctrl-C interruption
2052b9c00cbSConrad Meyercli : fix : do not change /dev/null permissions when using command -t with root access, reported by @mike155 (#851)
2062b9c00cbSConrad Meyercli : fix : write file size in header in multiple-files mode
2072b9c00cbSConrad Meyerapi : added macro ZSTD_COMPRESSBOUND() for static allocation
2082b9c00cbSConrad Meyerapi : experimental : new advanced decompression API
2092b9c00cbSConrad Meyerapi : fix : sizeof_CCtx() used to over-estimate
2102b9c00cbSConrad Meyerbuild: fix : no-multithread variant compiles without pool.c dependency, reported by Mitchell Blank Jr (@mitchblank) (#819)
2112b9c00cbSConrad Meyerbuild: better compatibility with reproducible builds, by Bernhard M. Wiedemann (@bmwiedemann) (#818)
2122b9c00cbSConrad Meyerexample : added streaming_memory_usage
2132b9c00cbSConrad Meyerlicense : changed /examples license to BSD + GPLv2
2142b9c00cbSConrad Meyerlicense : fix a few header files to reflect new license (#825)
2152b9c00cbSConrad Meyer
2162b9c00cbSConrad Meyerv1.3.1
2172b9c00cbSConrad MeyerNew license : BSD + GPLv2
2182b9c00cbSConrad Meyerperf: substantially decreased memory usage in Multi-threading mode, thanks to reports by Tino Reichardt (@mcmilk)
2192b9c00cbSConrad Meyerperf: Multi-threading supports up to 256 threads. Cap at 256 when more are requested (#760)
2202b9c00cbSConrad Meyercli : improved and fixed --list command, by @ib (#772)
2212b9c00cbSConrad Meyercli : command -vV to list supported formats, by @ib (#771)
2222b9c00cbSConrad Meyerbuild : fixed binary variants, reported by @svenha (#788)
2232b9c00cbSConrad Meyerbuild : fix Visual compilation for non x86/x64 targets, reported by Greg Slazinski (@GregSlazinski) (#718)
2242b9c00cbSConrad MeyerAPI exp : breaking change : ZSTD_getframeHeader() provides more information
2252b9c00cbSConrad MeyerAPI exp : breaking change : pinned down values of error codes
2262b9c00cbSConrad Meyerdoc : fixed huffman example, by Ulrich Kunitz (@ulikunitz)
2272b9c00cbSConrad Meyernew : contrib/adaptive-compression, I/O driven compression strength, by Paul Cruz (@paulcruz74)
2282b9c00cbSConrad Meyernew : contrib/long_distance_matching, statistics by Stella Lau (@stellamplau)
2292b9c00cbSConrad Meyerupdated : contrib/linux-kernel, by Nick Terrell (@terrelln)
2302b9c00cbSConrad Meyer
2312b9c00cbSConrad Meyerv1.3.0
2322b9c00cbSConrad Meyercli : new : `--list` command, by Paul Cruz
2332b9c00cbSConrad Meyercli : changed : xz/lzma support enabled by default
2342b9c00cbSConrad Meyercli : changed : `-t *` continue processing list after a decompression error
2352b9c00cbSConrad MeyerAPI : added : ZSTD_versionString()
2362b9c00cbSConrad MeyerAPI : promoted to stable status : ZSTD_getFrameContentSize(), by Sean Purcell
2372b9c00cbSConrad MeyerAPI exp : new advanced API : ZSTD_compress_generic(), ZSTD_CCtx_setParameter()
2382b9c00cbSConrad MeyerAPI exp : new : API for static or external allocation : ZSTD_initStatic?Ctx()
2392b9c00cbSConrad MeyerAPI exp : added : ZSTD_decompressBegin_usingDDict(), requested by Guy Riddle (#700)
2402b9c00cbSConrad MeyerAPI exp : clarified memory estimation / measurement functions.
2412b9c00cbSConrad MeyerAPI exp : changed : strongest strategy renamed ZSTD_btultra, fastest strategy ZSTD_fast set to 1
2422b9c00cbSConrad Meyertools : decodecorpus can generate random dictionary-compressed samples, by Paul Cruz
2432b9c00cbSConrad Meyernew : contrib/seekable_format, demo and API, by Sean Purcell
2442b9c00cbSConrad Meyerchanged : contrib/linux-kernel, updated version and license, by Nick Terrell
2452b9c00cbSConrad Meyer
2462b9c00cbSConrad Meyerv1.2.0
2472b9c00cbSConrad Meyercli : changed : Multithreading enabled by default (use target zstd-nomt or HAVE_THREAD=0 to disable)
2482b9c00cbSConrad Meyercli : new : command -T0 means "detect and use nb of cores", by Sean Purcell
2492b9c00cbSConrad Meyercli : new : zstdmt symlink hardwired to `zstd -T0`
2502b9c00cbSConrad Meyercli : new : command --threads=# (#671)
2512b9c00cbSConrad Meyercli : changed : cover dictionary builder by default, for improved quality, by Nick Terrell
2522b9c00cbSConrad Meyercli : new : commands --train-cover and --train-legacy, to select dictionary algorithm and parameters
2532b9c00cbSConrad Meyercli : experimental targets `zstd4` and `xzstd4`, with support for lz4 format, by Sean Purcell
2542b9c00cbSConrad Meyercli : fix : does not output compressed data on console
2552b9c00cbSConrad Meyercli : fix : ignore symbolic links unless --force specified,
2562b9c00cbSConrad MeyerAPI : breaking change : ZSTD_createCDict_advanced(), only use compressionParameters as argument
2572b9c00cbSConrad MeyerAPI : added : prototypes ZSTD_*_usingCDict_advanced(), for direct control over frameParameters.
2582b9c00cbSConrad MeyerAPI : improved: ZSTDMT_compressCCtx() reduced memory usage
2592b9c00cbSConrad MeyerAPI : fix : ZSTDMT_compressCCtx() now provides srcSize in header (#634)
2602b9c00cbSConrad MeyerAPI : fix : src size stored in frame header is controlled at end of frame
2612b9c00cbSConrad MeyerAPI : fix : enforced consistent rules for pledgedSrcSize==0 (#641)
2622b9c00cbSConrad MeyerAPI : fix : error code "GENERIC" replaced by "dstSizeTooSmall" when appropriate
2632b9c00cbSConrad Meyerbuild: improved cmake script, by @Majlen
2642b9c00cbSConrad Meyerbuild: enabled Multi-threading support for *BSD, by Baptiste Daroussin
2652b9c00cbSConrad Meyertools: updated Paramgrill. Command -O# provides best parameters for sample and speed target.
2662b9c00cbSConrad Meyernew : contrib/linux-kernel version, by Nick Terrell
2672b9c00cbSConrad Meyer
2682b9c00cbSConrad Meyerv1.1.4
2692b9c00cbSConrad Meyercli : new : can compress in *.gz format, using --format=gzip command, by Przemyslaw Skibinski
2702b9c00cbSConrad Meyercli : new : advanced benchmark command --priority=rt
2712b9c00cbSConrad Meyercli : fix : write on sparse-enabled file systems in 32-bits mode, by @ds77
2722b9c00cbSConrad Meyercli : fix : --rm remains silent when input is stdin
2732b9c00cbSConrad Meyercli : experimental : xzstd, with support for xz/lzma decoding, by Przemyslaw Skibinski
2742b9c00cbSConrad Meyerspeed : improved decompression speed in streaming mode for single shot scenarios (+5%)
2752b9c00cbSConrad Meyermemory: DDict (decompression dictionary) memory usage down from 150 KB to 20 KB
2762b9c00cbSConrad Meyerarch: 32-bits variant able to generate and decode very long matches (>32 MB), by Sean Purcell
2772b9c00cbSConrad MeyerAPI : new : ZSTD_findFrameCompressedSize(), ZSTD_getFrameContentSize(), ZSTD_findDecompressedSize()
2782b9c00cbSConrad MeyerAPI : changed : dropped support of legacy versions <= v0.3 (can be changed by modifying ZSTD_LEGACY_SUPPORT value)
2792b9c00cbSConrad Meyerbuild : new: meson build system in contrib/meson, by Dima Krasner
2802b9c00cbSConrad Meyerbuild : improved cmake script, by @Majlen
2812b9c00cbSConrad Meyerbuild : added -Wformat-security flag, as recommended by Padraig Brady
2822b9c00cbSConrad Meyerdoc : new : educational decoder, by Sean Purcell
2832b9c00cbSConrad Meyer
2842b9c00cbSConrad Meyerv1.1.3
2852b9c00cbSConrad Meyercli : zstd can decompress .gz files (can be disabled with `make zstd-nogz` or `make HAVE_ZLIB=0`)
2862b9c00cbSConrad Meyercli : new : experimental target `make zstdmt`, with multi-threading support
2872b9c00cbSConrad Meyercli : new : improved dictionary builder "cover" (experimental), by Nick Terrell, based on prior work by Giuseppe Ottaviano.
2882b9c00cbSConrad Meyercli : new : advanced commands for detailed parameters, by Przemyslaw Skibinski
2892b9c00cbSConrad Meyercli : fix zstdless on Mac OS-X, by Andrew Janke
2902b9c00cbSConrad Meyercli : fix #232 "compress non-files"
2912b9c00cbSConrad MeyerdictBuilder : improved dictionary generation quality, thanks to Nick Terrell
2922b9c00cbSConrad MeyerAPI : new : lib/compress/ZSTDMT_compress.h multithreading API (experimental)
2932b9c00cbSConrad MeyerAPI : new : ZSTD_create?Dict_byReference(), requested by Bartosz Taudul
2942b9c00cbSConrad MeyerAPI : new : ZDICT_finalizeDictionary()
2952b9c00cbSConrad MeyerAPI : fix : ZSTD_initCStream_usingCDict() properly writes dictID into frame header, by Gregory Szorc (#511)
2962b9c00cbSConrad MeyerAPI : fix : all symbols properly exposed in libzstd, by Nick Terrell
2972b9c00cbSConrad Meyerbuild : support for Solaris target, by Przemyslaw Skibinski
2982b9c00cbSConrad Meyerdoc : clarified specification, by Sean Purcell
2992b9c00cbSConrad Meyer
3002b9c00cbSConrad Meyerv1.1.2
3012b9c00cbSConrad MeyerAPI : streaming : decompression : changed : automatic implicit reset when chain-decoding new frames without init
3022b9c00cbSConrad MeyerAPI : experimental : added : dictID retrieval functions, and ZSTD_initCStream_srcSize()
3032b9c00cbSConrad MeyerAPI : zbuff : changed : prototypes now generate deprecation warnings
3042b9c00cbSConrad Meyerlib : improved : faster decompression speed at ultra compression settings and 32-bits mode
3052b9c00cbSConrad Meyerlib : changed : only public ZSTD_ symbols are now exposed
3062b9c00cbSConrad Meyerlib : changed : reduced usage  of stack memory
3072b9c00cbSConrad Meyerlib : fixed : several corner case bugs, by Nick Terrell
3082b9c00cbSConrad Meyercli : new : gzstd, experimental version able to decode .gz files, by Przemyslaw Skibinski
3092b9c00cbSConrad Meyercli : new : preserve file attributes
3102b9c00cbSConrad Meyercli : new : added zstdless and zstdgrep tools
3112b9c00cbSConrad Meyercli : fixed : status displays total amount decoded, even for file consisting of multiple frames (like pzstd)
3122b9c00cbSConrad Meyercli : fixed : zstdcat
3132b9c00cbSConrad Meyerzlib_wrapper : added support for gz* functions, by Przemyslaw Skibinski
3142b9c00cbSConrad Meyerinstall : better compatibility with FreeBSD, by Dimitry Andric
3152b9c00cbSConrad Meyersource tree : changed : zbuff source files moved to lib/deprecated
3162b9c00cbSConrad Meyer
3172b9c00cbSConrad Meyerv1.1.1
3182b9c00cbSConrad MeyerNew : command -M#, --memory=, --memlimit=, --memlimit-decompress= to limit allowed memory consumption
3192b9c00cbSConrad MeyerNew : doc/zstd_manual.html, by Przemyslaw Skibinski
3202b9c00cbSConrad MeyerImproved : slightly better compression ratio at --ultra levels (>= 20)
3212b9c00cbSConrad MeyerImproved : better memory usage when using streaming compression API, thanks to @Rogier-5 report
3222b9c00cbSConrad MeyerAdded : API : ZSTD_initCStream_usingCDict(), ZSTD_initDStream_usingDDict() (experimental section)
3232b9c00cbSConrad MeyerAdded : example/multiple_streaming_compression.c
3242b9c00cbSConrad MeyerChanged : zstd_errors.h is now installed within /include (and replaces errors_public.h)
3252b9c00cbSConrad MeyerUpdated man page
3262b9c00cbSConrad MeyerFixed : zstd-small, zstd-compress and zstd-decompress compilation targets
3272b9c00cbSConrad Meyer
3282b9c00cbSConrad Meyerv1.1.0
3292b9c00cbSConrad MeyerNew : contrib/pzstd, parallel version of zstd, by Nick Terrell
3302b9c00cbSConrad Meyeradded : NetBSD install target (#338)
3312b9c00cbSConrad MeyerImproved : speed for batches of small files
3322b9c00cbSConrad MeyerImproved : speed of zlib wrapper, by Przemyslaw Skibinski
3332b9c00cbSConrad MeyerChanged : libzstd on Windows supports legacy formats, by Christophe Chevalier
3342b9c00cbSConrad MeyerFixed : CLI -d output to stdout by default when input is stdin (#322)
3352b9c00cbSConrad MeyerFixed : CLI correctly detects console on Mac OS-X
3362b9c00cbSConrad MeyerFixed : CLI supports recursive mode `-r` on Mac OS-X
3372b9c00cbSConrad MeyerFixed : Legacy decoders use unified error codes, reported by benrg (#341), fixed by Przemyslaw Skibinski
3382b9c00cbSConrad MeyerFixed : compatibility with OpenBSD, reported by Juan Francisco Cantero Hurtado (#319)
3392b9c00cbSConrad MeyerFixed : compatibility with Hurd, by Przemyslaw Skibinski (#365)
3402b9c00cbSConrad MeyerFixed : zstd-pgo, reported by octoploid (#329)
3412b9c00cbSConrad Meyer
3422b9c00cbSConrad Meyerv1.0.0
3432b9c00cbSConrad MeyerChange Licensing, all project is now BSD, Copyright Facebook
3442b9c00cbSConrad MeyerSmall decompression speed improvement
3452b9c00cbSConrad MeyerAPI : Streaming API supports legacy format
3462b9c00cbSConrad MeyerAPI : ZDICT_getDictID(), ZSTD_sizeof_{CCtx, DCtx, CStream, DStream}(), ZSTD_setDStreamParameter()
3472b9c00cbSConrad MeyerCLI supports legacy formats v0.4+
3482b9c00cbSConrad MeyerFixed : compression fails on certain huge files, reported by Jesse McGrew
3492b9c00cbSConrad MeyerEnhanced documentation, by Przemyslaw Skibinski
3502b9c00cbSConrad Meyer
3512b9c00cbSConrad Meyerv0.8.1
3522b9c00cbSConrad MeyerNew streaming API
3532b9c00cbSConrad MeyerChanged : --ultra now enables levels beyond 19
3542b9c00cbSConrad MeyerChanged : -i# now selects benchmark time in second
3552b9c00cbSConrad MeyerFixed : ZSTD_compress* can now compress > 4 GB in a single pass, reported by Nick Terrell
3562b9c00cbSConrad MeyerFixed : speed regression on specific patterns (#272)
3572b9c00cbSConrad MeyerFixed : support for Z_SYNC_FLUSH, by Dmitry Krot (#291)
3582b9c00cbSConrad MeyerFixed : ICC compilation, by Przemyslaw Skibinski
3592b9c00cbSConrad Meyer
3602b9c00cbSConrad Meyerv0.8.0
3612b9c00cbSConrad MeyerImproved : better speed on clang and gcc -O2, thanks to Eric Biggers
3622b9c00cbSConrad MeyerNew : Build on FreeBSD and DragonFly, thanks to JrMarino
3632b9c00cbSConrad MeyerChanged : modified API : ZSTD_compressEnd()
3642b9c00cbSConrad MeyerFixed : legacy mode with ZSTD_HEAPMODE=0, by Christopher Bergqvist
3652b9c00cbSConrad MeyerFixed : premature end of frame when zero-sized raw block, reported by Eric Biggers
3662b9c00cbSConrad MeyerFixed : large dictionaries (> 384 KB), reported by Ilona Papava
3672b9c00cbSConrad MeyerFixed : checksum correctly checked in single-pass mode
3682b9c00cbSConrad MeyerFixed : combined --test amd --rm, reported by Andreas M. Nilsson
3692b9c00cbSConrad MeyerModified : minor compression level adaptations
3702b9c00cbSConrad MeyerUpdated : compression format specification to v0.2.0
3712b9c00cbSConrad Meyerchanged : zstd.h moved to /lib directory
3722b9c00cbSConrad Meyer
3732b9c00cbSConrad Meyerv0.7.5
3742b9c00cbSConrad MeyerTransition version, supporting decoding of v0.8.x
3752b9c00cbSConrad Meyer
3762b9c00cbSConrad Meyerv0.7.4
3772b9c00cbSConrad MeyerAdded : homebrew for Mac, by Daniel Cade
3782b9c00cbSConrad MeyerAdded : more examples
3792b9c00cbSConrad MeyerFixed : segfault when using small dictionaries, reported by Felix Handte
3802b9c00cbSConrad MeyerModified : default compression level for CLI is now 3
3812b9c00cbSConrad MeyerUpdated : specification, to v0.1.1
3822b9c00cbSConrad Meyer
3832b9c00cbSConrad Meyerv0.7.3
3842b9c00cbSConrad MeyerNew : compression format specification
3852b9c00cbSConrad MeyerNew : `--` separator, stating that all following arguments are file names. Suggested by Chip Turner.
3862b9c00cbSConrad MeyerNew : `ZSTD_getDecompressedSize()`
3872b9c00cbSConrad MeyerNew : OpenBSD target, by Juan Francisco Cantero Hurtado
3882b9c00cbSConrad MeyerNew : `examples` directory
3892b9c00cbSConrad Meyerfixed : dictBuilder using HC levels, reported by Bartosz Taudul
3902b9c00cbSConrad Meyerfixed : legacy support from ZSTD_decompress_usingDDict(), reported by Felix Handte
3912b9c00cbSConrad Meyerfixed : multi-blocks decoding with intermediate uncompressed blocks, reported by Greg Slazinski
3922b9c00cbSConrad Meyermodified : removed "mem.h" and "error_public.h" dependencies from "zstd.h" (experimental section)
3932b9c00cbSConrad Meyermodified : legacy functions no longer need magic number
3942b9c00cbSConrad Meyer
3952b9c00cbSConrad Meyerv0.7.2
3962b9c00cbSConrad Meyerfixed : ZSTD_decompressBlock() using multiple consecutive blocks. Reported by Greg Slazinski.
3972b9c00cbSConrad Meyerfixed : potential segfault on very large files (many gigabytes). Reported by Chip Turner.
3982b9c00cbSConrad Meyerfixed : CLI displays system error message when destination file cannot be created (#231). Reported by Chip Turner.
3992b9c00cbSConrad Meyer
4002b9c00cbSConrad Meyerv0.7.1
4012b9c00cbSConrad Meyerfixed : ZBUFF_compressEnd() called multiple times with too small `dst` buffer, reported by Christophe Chevalier
4022b9c00cbSConrad Meyerfixed : dictBuilder fails if first sample is too small, reported by Руслан Ковалёв
4032b9c00cbSConrad Meyerfixed : corruption issue, reported by cj
4042b9c00cbSConrad Meyermodified : checksum enabled by default in command line mode
4052b9c00cbSConrad Meyer
4062b9c00cbSConrad Meyerv0.7.0
4072b9c00cbSConrad MeyerNew : Support for directory compression, using `-r`, thanks to Przemyslaw Skibinski
4082b9c00cbSConrad MeyerNew : Command `--rm`, to remove source file after successful de/compression
4092b9c00cbSConrad MeyerNew : Visual build scripts, by Christophe Chevalier
4102b9c00cbSConrad MeyerNew : Support for Sparse File-systems (do not use space for zero-filled sectors)
4112b9c00cbSConrad MeyerNew : Frame checksum support
4122b9c00cbSConrad MeyerNew : Support pass-through mode (when using `-df`)
4132b9c00cbSConrad MeyerAPI : more efficient Dictionary API : `ZSTD_compress_usingCDict()`, `ZSTD_decompress_usingDDict()`
4142b9c00cbSConrad MeyerAPI : create dictionary files from custom content, by Giuseppe Ottaviano
4152b9c00cbSConrad MeyerAPI : support for custom malloc/free functions
4162b9c00cbSConrad MeyerNew : controllable Dictionary ID
4172b9c00cbSConrad MeyerNew : Support for skippable frames
4182b9c00cbSConrad Meyer
4192b9c00cbSConrad Meyerv0.6.1
4202b9c00cbSConrad MeyerNew : zlib wrapper API, thanks to Przemyslaw Skibinski
4212b9c00cbSConrad MeyerNew : Ability to compile compressor / decompressor separately
4222b9c00cbSConrad MeyerChanged : new lib directory structure
4232b9c00cbSConrad MeyerFixed : Legacy codec v0.5 compatible with dictionary decompression
4242b9c00cbSConrad MeyerFixed : Decoder corruption error (#173)
4252b9c00cbSConrad MeyerFixed : null-string roundtrip (#176)
4262b9c00cbSConrad MeyerNew : benchmark mode can select directory as input
4272b9c00cbSConrad MeyerExperimental : midipix support, VMS support
4282b9c00cbSConrad Meyer
4292b9c00cbSConrad Meyerv0.6.0
4302b9c00cbSConrad MeyerStronger high compression modes, thanks to Przemyslaw Skibinski
4312b9c00cbSConrad MeyerAPI : ZSTD_getFrameParams() provides size of decompressed content
4322b9c00cbSConrad MeyerNew : highest compression modes require `--ultra` command to fully unleash their capacity
4332b9c00cbSConrad MeyerFixed : zstd cli return error code > 0 and removes dst file artifact when decompression fails, thanks to Chip Turner
4342b9c00cbSConrad Meyer
4352b9c00cbSConrad Meyerv0.5.1
4362b9c00cbSConrad MeyerNew : Optimal parsing => Very high compression modes, thanks to Przemyslaw Skibinski
4372b9c00cbSConrad MeyerChanged : Dictionary builder integrated into libzstd and zstd cli
4382b9c00cbSConrad MeyerChanged (!) : zstd cli now uses "multiple input files" as default mode. See `zstd -h`.
4392b9c00cbSConrad MeyerFix : high compression modes for big-endian platforms
4402b9c00cbSConrad MeyerNew : zstd cli : `-t` | `--test` command
4412b9c00cbSConrad Meyer
4422b9c00cbSConrad Meyerv0.5.0
4432b9c00cbSConrad MeyerNew : dictionary builder utility
4442b9c00cbSConrad MeyerChanged : streaming & dictionary API
4452b9c00cbSConrad MeyerImproved : better compression of small data
4462b9c00cbSConrad Meyer
4472b9c00cbSConrad Meyerv0.4.7
4482b9c00cbSConrad MeyerImproved : small compression speed improvement in HC mode
4492b9c00cbSConrad MeyerChanged : `zstd_decompress.c` has ZSTD_LEGACY_SUPPORT to 0 by default
4502b9c00cbSConrad Meyerfix : bt search bug
4512b9c00cbSConrad Meyer
4522b9c00cbSConrad Meyerv0.4.6
4532b9c00cbSConrad Meyerfix : fast compression mode on Windows
4542b9c00cbSConrad MeyerNew : cmake configuration file, thanks to Artyom Dymchenko
4552b9c00cbSConrad MeyerImproved : high compression mode on repetitive data
4562b9c00cbSConrad MeyerNew : block-level API
4572b9c00cbSConrad MeyerNew : ZSTD_duplicateCCtx()
4582b9c00cbSConrad Meyer
4592b9c00cbSConrad Meyerv0.4.5
4602b9c00cbSConrad Meyernew : -m/--multiple : compress/decompress multiple files
4612b9c00cbSConrad Meyer
4622b9c00cbSConrad Meyerv0.4.4
4632b9c00cbSConrad MeyerFixed : high compression modes for Windows 32 bits
4642b9c00cbSConrad Meyernew : external dictionary API extended to buffered mode and accessible through command line
4652b9c00cbSConrad Meyernew : windows DLL project, thanks to Christophe Chevalier
4662b9c00cbSConrad Meyer
4672b9c00cbSConrad Meyerv0.4.3 :
4682b9c00cbSConrad Meyernew : external dictionary API
4692b9c00cbSConrad Meyernew : zstd-frugal
4702b9c00cbSConrad Meyer
4712b9c00cbSConrad Meyerv0.4.2 :
4722b9c00cbSConrad MeyerGeneric minor improvements for small blocks
4732b9c00cbSConrad MeyerFixed : big-endian compatibility, by Peter Harris (#85)
4742b9c00cbSConrad Meyer
4752b9c00cbSConrad Meyerv0.4.1
4762b9c00cbSConrad MeyerFixed : ZSTD_LEGACY_SUPPORT=0 build mode (reported by Luben)
4772b9c00cbSConrad Meyerremoved `zstd.c`
4782b9c00cbSConrad Meyer
4792b9c00cbSConrad Meyerv0.4.0
4802b9c00cbSConrad MeyerCommand line utility compatible with high compression levels
4812b9c00cbSConrad MeyerRemoved zstdhc => merged into zstd
4822b9c00cbSConrad MeyerAdded : ZBUFF API (see zstd_buffered.h)
4832b9c00cbSConrad MeyerRolling buffer support
4842b9c00cbSConrad Meyer
4852b9c00cbSConrad Meyerv0.3.6
4862b9c00cbSConrad Meyersmall blocks params
4872b9c00cbSConrad Meyer
4882b9c00cbSConrad Meyerv0.3.5
4892b9c00cbSConrad Meyerminor generic compression improvements
4902b9c00cbSConrad Meyer
4912b9c00cbSConrad Meyerv0.3.4
4922b9c00cbSConrad MeyerFaster fast cLevels
4932b9c00cbSConrad Meyer
4942b9c00cbSConrad Meyerv0.3.3
4952b9c00cbSConrad MeyerSmall compression ratio improvement
4962b9c00cbSConrad Meyer
4972b9c00cbSConrad Meyerv0.3.2
4982b9c00cbSConrad MeyerFixed Visual Studio
4992b9c00cbSConrad Meyer
5002b9c00cbSConrad Meyerv0.3.1 :
5012b9c00cbSConrad MeyerSmall compression ratio improvement
5022b9c00cbSConrad Meyer
5032b9c00cbSConrad Meyerv0.3
5042b9c00cbSConrad MeyerHC mode : compression levels 2-26
5052b9c00cbSConrad Meyer
5062b9c00cbSConrad Meyerv0.2.2
5072b9c00cbSConrad MeyerFix : Visual Studio 2013 & 2015 release compilation, by Christophe Chevalier
5082b9c00cbSConrad Meyer
5092b9c00cbSConrad Meyerv0.2.1
5102b9c00cbSConrad MeyerFix : Read errors, advanced fuzzer tests, by Hanno Böck
5112b9c00cbSConrad Meyer
5122b9c00cbSConrad Meyerv0.2.0
5132b9c00cbSConrad Meyer**Breaking format change**
5142b9c00cbSConrad MeyerFaster decompression speed
5152b9c00cbSConrad MeyerCan still decode v0.1 format
5162b9c00cbSConrad Meyer
5172b9c00cbSConrad Meyerv0.1.3
5182b9c00cbSConrad Meyerfix uninitialization warning, reported by Evan Nemerson
5192b9c00cbSConrad Meyer
5202b9c00cbSConrad Meyerv0.1.2
5212b9c00cbSConrad Meyerframe concatenation support
5222b9c00cbSConrad Meyer
5232b9c00cbSConrad Meyerv0.1.1
5242b9c00cbSConrad Meyerfix compression bug
5252b9c00cbSConrad Meyerdetects write-flush errors
5262b9c00cbSConrad Meyer
5272b9c00cbSConrad Meyerv0.1.0
5282b9c00cbSConrad Meyerfirst release
529