xref: /freebsd/sys/contrib/zstd/CHANGELOG (revision c6989859ae9388eeb46a24fe88f9b8d07101c710)
1v1.4.5
2fix : Compression ratio regression on huge files (> 3 GB) using high levels (--ultra) and multithreading, by @terrelln
3perf: Improved decompression speed: x64 : +10% (clang) / +5% (gcc); ARM : from +15% to +50%, depending on SoC, by @terrelln
4perf: Automatically downsizes ZSTD_DCtx when too large for too long (#2069, by @bimbashreshta)
5perf: Improved fast compression speed on aarch64 (#2040, ~+3%, by @caoyzh)
6perf: Small level 1 compression speed gains (depending on compiler)
7cli : New --patch-from command, create and apply patches from files, by @bimbashreshta
8cli : New --filelist= : Provide a list of files to operate upon from a file
9cli : -b -d command can now benchmark decompression on multiple files
10cli : New --no-content-size command
11cli : New --show-default-cparams information command
12api : ZDICT_finalizeDictionary() is promoted to stable (#2111)
13api : new experimental parameter ZSTD_d_stableOutBuffer (#2094)
14build: Generate a single-file libzstd library (#2065, by @cwoffenden)
15build: Relative includes no longer require -I compiler flags for zstd lib subdirs (#2103, by @felixhandte)
16build: zstd now compiles cleanly under -pedantic (#2099)
17build: zstd now compiles with make-4.3
18build: Support mingw cross-compilation from Linux, by @Ericson2314
19build: Meson multi-thread build fix on windows
20build: Some misc icc fixes backed by new ci test on travis
21misc: bitflip analyzer tool, by @felixhandte
22misc: Extend largeNbDicts benchmark to compression
23misc: Edit-distance match finder in contrib/
24doc : Improved beginner CONTRIBUTING.md docs
25doc : New issue templates for zstd
26
27v1.4.4
28perf: Improved decompression speed, by > 10%, by @terrelln
29perf: Better compression speed when re-using a context, by @felixhandte
30perf: Fix compression ratio when compressing large files with small dictionary, by @senhuang42
31perf: zstd reference encoder can generate RLE blocks, by @bimbashrestha
32perf: minor generic speed optimization, by @davidbolvansky
33api: new ability to extract sequences from the parser for analysis, by @bimbashrestha
34api: fixed decoding of magic-less frames, by @terrelln
35api: fixed ZSTD_initCStream_advanced() performance with fast modes, reported by @QrczakMK
36cli: Named pipes support, by @bimbashrestha
37cli: short tar's extension support, by @stokito
38cli: command --output-dir-flat= , generates target files into requested directory, by @senhuang42
39cli: commands --stream-size=# and --size-hint=#, by @nmagerko
40cli: command --exclude-compressed, by @shashank0791
41cli: faster `-t` test mode
42cli: improved some error messages, by @vangyzen
43cli: fix command `-D dictionary` on Windows, reported by @artyompetrov
44cli: fix rare deadlock condition within dictionary builder, by @terrelln
45build: single-file decoder with emscripten compilation script, by @cwoffenden
46build: fixed zlibWrapper compilation on Visual Studio, reported by @bluenlive
47build: fixed deprecation warning for certain gcc version, reported by @jasonma163
48build: fix compilation on old gcc versions, by @cemeyer
49build: improved installation directories for cmake script, by Dmitri Shubin
50pack: modified pkgconfig, for better integration into openwrt, requested by @neheb
51misc: Improved documentation : ZSTD_CLEVEL, DYNAMIC_BMI2, ZSTD_CDict, function deprecation, zstd format
52misc: fixed educational decoder : accept larger literals section, and removed UNALIGNED() macro
53
54v1.4.3
55bug: Fix Dictionary Compression Ratio Regression by @cyan4973 (#1709)
56bug: Fix Buffer Overflow in legacy v0.3 decompression by @felixhandte (#1722)
57build: Add support for IAR C/C++ Compiler for Arm by @joseph0918 (#1705)
58
59v1.4.2
60bug: Fix bug in zstd-0.5 decoder by @terrelln (#1696)
61bug: Fix seekable decompression in-memory API by @iburinoc (#1695)
62misc: Validate blocks are smaller than size limit by @vivekmg (#1685)
63misc: Restructure source files by @ephiepark (#1679)
64
65v1.4.1
66bug: Fix data corruption in niche use cases by @terrelln (#1659)
67bug: Fuzz legacy modes, fix uncovered bugs by @terrelln (#1593, #1594, #1595)
68bug: Fix out of bounds read by @terrelln (#1590)
69perf: Improve decode speed by ~7% @mgrice (#1668)
70perf: Slightly improved compression ratio of level 3 and 4 (ZSTD_dfast) by @cyan4973 (#1681)
71perf: Slightly faster compression speed when re-using a context by @cyan4973 (#1658)
72perf: Improve compression ratio for small windowLog by @cyan4973 (#1624)
73perf: Faster compression speed in high compression mode for repetitive data by @terrelln (#1635)
74api: Add parameter to generate smaller dictionaries by @tyler-tran (#1656)
75cli: Recognize symlinks when built in C99 mode by @felixhandte (#1640)
76cli: Expose cpu load indicator for each file on -vv mode by @ephiepark (#1631)
77cli: Restrict read permissions on destination files by @chungy (#1644)
78cli: zstdgrep: handle -f flag by @felixhandte (#1618)
79cli: zstdcat: follow symlinks by @vejnar (#1604)
80doc: Remove extra size limit on compressed blocks by @felixhandte (#1689)
81doc: Fix typo by @yk-tanigawa (#1633)
82doc: Improve documentation on streaming buffer sizes by @cyan4973 (#1629)
83build: CMake: support building with LZ4 @leeyoung624 (#1626)
84build: CMake: install zstdless and zstdgrep by @leeyoung624 (#1647)
85build: CMake: respect existing uninstall target by @j301scott (#1619)
86build: Make: skip multithread tests when built without support by @michaelforney (#1620)
87build: Make: Fix examples/ test target by @sjnam (#1603)
88build: Meson: rename options out of deprecated namespace by @lzutao (#1665)
89build: Meson: fix build by @lzutao (#1602)
90build: Visual Studio: don't export symbols in static lib by @scharan (#1650)
91build: Visual Studio: fix linking by @absotively (#1639)
92build: Fix MinGW-W64 build by @myzhang1029 (#1600)
93misc: Expand decodecorpus coverage by @ephiepark (#1664)
94
95v1.4.0
96perf: Improve level 1 compression speed in most scenarios by 6% by @gbtucker and @terrelln
97api: Move the advanced API, including all functions in the staging section, to the stable section
98api: Make ZSTD_e_flush and ZSTD_e_end block for maximum forward progress
99api: Rename ZSTD_CCtxParam_getParameter to ZSTD_CCtxParams_getParameter
100api: Rename ZSTD_CCtxParam_setParameter to ZSTD_CCtxParams_setParameter
101api: Don't export ZSTDMT functions from the shared library by default
102api: Require ZSTD_MULTITHREAD to be defined to use ZSTDMT
103api: Add ZSTD_decompressBound() to provide an upper bound on decompressed size by @shakeelrao
104api: Fix ZSTD_decompressDCtx() corner cases with a dictionary
105api: Move ZSTD_getDictID_*() functions to the stable section
106api: Add ZSTD_c_literalCompressionMode flag to enable or disable literal compression by @terrelln
107api: Allow compression parameters to be set when a dictionary is used
108api: Allow setting parameters before or after ZSTD_CCtx_loadDictionary() is called
109api: Fix ZSTD_estimateCStreamSize_usingCCtxParams()
110api: Setting ZSTD_d_maxWindowLog to 0 means use the default
111cli: Ensure that a dictionary is not used to compress itself by @shakeelrao
112cli: Add --[no-]compress-literals flag to enable or disable literal compression
113doc: Update the examples to use the advanced API
114doc: Explain how to transition from old streaming functions to the advanced API in the header
115build: Improve the Windows release packages
116build: Improve CMake build by @hjmjohnson
117build: Build fixes for FreeBSD by @lwhsu
118build: Remove redundant warnings by @thatsafunnyname
119build: Fix tests on OpenBSD by @bket
120build: Extend fuzzer build system to work with the new clang engine
121build: CMake now creates the libzstd.so.1 symlink
122build: Improve Menson build by @lzutao
123misc: Fix symbolic link detection on FreeBSD
124misc: Use physical core count for -T0 on FreeBSD by @cemeyer
125misc: Fix zstd --list on truncated files by @kostmo
126misc: Improve logging in debug mode by @felixhandte
127misc: Add CirrusCI tests by @lwhsu
128misc: Optimize dictionary memory usage in corner cases
129misc: Improve the dictionary builder on small or homogeneous data
130misc: Fix spelling across the repo by @jsoref
131
132v1.3.8
133perf: better decompression speed on large files (+7%) and cold dictionaries (+15%)
134perf: slightly better compression ratio at high compression modes
135api : finalized advanced API, last stage before "stable" status
136api : new --rsyncable mode, by @terrelln
137api : support decompression of empty frames into NULL (used to be an error) (#1385)
138build: new set of macros to build a minimal size decoder, by @felixhandte
139build: fix compilation on MIPS32, reported by @clbr (#1441)
140build: fix compilation with multiple -arch flags, by @ryandesign
141build: highly upgraded meson build, by @lzutao
142build: improved buck support, by @obelisk
143build: fix cmake script : can create debug build, by @pitrou
144build: Makefile : grep works on both colored consoles and systems without color support
145build: fixed zstd-pgo, by @bmwiedemann
146cli : support ZSTD_CLEVEL environment variable, by @yijinfb (#1423)
147cli : --no-progress flag, preserving final summary (#1371), by @terrelln
148cli : ensure destination file is not source file (#1422)
149cli : clearer error messages, especially when input file not present
150doc : clarified zstd_compression_format.md, by @ulikunitz
151misc: fixed zstdgrep, returns 1 on failure, by @lzutao
152misc: NEWS renamed as CHANGELOG, in accordance with fboss
153
154v1.3.7
155perf: slightly better decompression speed on clang (depending on hardware target)
156fix : performance of dictionary compression for small input < 4 KB at levels 9 and 10
157build: no longer build backtrace by default in release mode; restrict further automatic mode
158build: control backtrace support through build macro BACKTRACE
159misc: added man pages for zstdless and zstdgrep, by @samrussell
160
161v1.3.6
162perf: much faster dictionary builder, by @jenniferliu
163perf: faster dictionary compression on small data when using multiple contexts, by @felixhandte
164perf: faster dictionary decompression when using a very large number of dictionaries simultaneously
165cli : fix : does no longer overwrite destination when source does not exist (#1082)
166cli : new command --adapt, for automatic compression level adaptation
167api : fix : block api can be streamed with > 4 GB, reported by @catid
168api : reduced ZSTD_DDict size by 2 KB
169api : minimum negative compression level is defined, and can be queried using ZSTD_minCLevel().
170build: support Haiku target, by @korli
171build: Read Legacy format is limited to v0.5+ by default. Can be changed at compile time with macro ZSTD_LEGACY_SUPPORT.
172doc : zstd_compression_format.md updated to match wording in IETF RFC 8478
173misc: tests/paramgrill, a parameter optimizer, by @GeorgeLu97
174
175v1.3.5
176perf: much faster dictionary compression, by @felixhandte
177perf: small quality improvement for dictionary generation, by @terrelln
178perf: slightly improved high compression levels (notably level 19)
179mem : automatic memory release for long duration contexts
180cli : fix : overlapLog can be manually set
181cli : fix : decoding invalid lz4 frames
182api : fix : performance degradation for dictionary compression when using advanced API, by @terrelln
183api : change : clarify ZSTD_CCtx_reset() vs ZSTD_CCtx_resetParameters(), by @terrelln
184build: select custom libzstd scope through control macros, by @GeorgeLu97
185build: OpenBSD patch, by @bket
186build: make and make all are compatible with -j
187doc : clarify zstd_compression_format.md, updated for IETF RFC process
188misc: pzstd compatible with reproducible compilation, by @lamby
189
190v1.3.4
191perf: faster speed (especially decoding speed) on recent cpus (haswell+)
192perf: much better performance associating --long with multi-threading, by @terrelln
193perf: better compression at levels 13-15
194cli : asynchronous compression by default, for faster experience (use --single-thread for former behavior)
195cli : smoother status report in multi-threading mode
196cli : added command --fast=#, for faster compression modes
197cli : fix crash when not overwriting existing files, by Pádraig Brady (@pixelb)
198api : `nbThreads` becomes `nbWorkers` : 1 triggers asynchronous mode
199api : compression levels can be negative, for even more speed
200api : ZSTD_getFrameProgression() : get precise progress status of ZSTDMT anytime
201api : ZSTDMT can accept new compression parameters during compression
202api : implemented all advanced dictionary decompression prototypes
203build: improved meson recipe, by Shawn Landden (@shawnl)
204build: VS2017 scripts, by @HaydnTrigg
205misc: all /contrib projects fixed
206misc: added /contrib/docker script by @gyscos
207
208v1.3.3
209perf: faster zstd_opt strategy (levels 16-19)
210fix : bug #944 : multithreading with shared ditionary and large data, reported by @gsliepen
211cli : fix : content size written in header by default
212cli : fix : improved LZ4 format support, by @felixhandte
213cli : new : hidden command `-S`, to benchmark multiple files while generating one result per file
214api : fix : support large skippable frames, by @terrelln
215api : fix : streaming interface was adding a useless 3-bytes null block to small frames
216api : change : when setting `pledgedSrcSize`, use `ZSTD_CONTENTSIZE_UNKNOWN` macro value to mean "unknown"
217build: fix : compilation under rhel6 and centos6, reported by @pixelb
218build: added `check` target
219
220v1.3.2
221new : long range mode, using --long command, by Stella Lau (@stellamplau)
222new : ability to generate and decode magicless frames (#591)
223changed : maximum nb of threads reduced to 200, to avoid address space exhaustion in 32-bits mode
224fix : multi-threading compression works with custom allocators
225fix : ZSTD_sizeof_CStream() was over-evaluating memory usage
226fix : a rare compression bug when compression generates very large distances and bunch of other conditions (only possible at --ultra -22)
227fix : 32-bits build can now decode large offsets (levels 21+)
228cli : added LZ4 frame support by default, by Felix Handte (@felixhandte)
229cli : improved --list output
230cli : new : can split input file for dictionary training, using command -B#
231cli : new : clean operation artefact on Ctrl-C interruption
232cli : fix : do not change /dev/null permissions when using command -t with root access, reported by @mike155 (#851)
233cli : fix : write file size in header in multiple-files mode
234api : added macro ZSTD_COMPRESSBOUND() for static allocation
235api : experimental : new advanced decompression API
236api : fix : sizeof_CCtx() used to over-estimate
237build: fix : no-multithread variant compiles without pool.c dependency, reported by Mitchell Blank Jr (@mitchblank) (#819)
238build: better compatibility with reproducible builds, by Bernhard M. Wiedemann (@bmwiedemann) (#818)
239example : added streaming_memory_usage
240license : changed /examples license to BSD + GPLv2
241license : fix a few header files to reflect new license (#825)
242
243v1.3.1
244New license : BSD + GPLv2
245perf: substantially decreased memory usage in Multi-threading mode, thanks to reports by Tino Reichardt (@mcmilk)
246perf: Multi-threading supports up to 256 threads. Cap at 256 when more are requested (#760)
247cli : improved and fixed --list command, by @ib (#772)
248cli : command -vV to list supported formats, by @ib (#771)
249build : fixed binary variants, reported by @svenha (#788)
250build : fix Visual compilation for non x86/x64 targets, reported by Greg Slazinski (@GregSlazinski) (#718)
251API exp : breaking change : ZSTD_getframeHeader() provides more information
252API exp : breaking change : pinned down values of error codes
253doc : fixed huffman example, by Ulrich Kunitz (@ulikunitz)
254new : contrib/adaptive-compression, I/O driven compression strength, by Paul Cruz (@paulcruz74)
255new : contrib/long_distance_matching, statistics by Stella Lau (@stellamplau)
256updated : contrib/linux-kernel, by Nick Terrell (@terrelln)
257
258v1.3.0
259cli : new : `--list` command, by Paul Cruz
260cli : changed : xz/lzma support enabled by default
261cli : changed : `-t *` continue processing list after a decompression error
262API : added : ZSTD_versionString()
263API : promoted to stable status : ZSTD_getFrameContentSize(), by Sean Purcell
264API exp : new advanced API : ZSTD_compress_generic(), ZSTD_CCtx_setParameter()
265API exp : new : API for static or external allocation : ZSTD_initStatic?Ctx()
266API exp : added : ZSTD_decompressBegin_usingDDict(), requested by Guy Riddle (#700)
267API exp : clarified memory estimation / measurement functions.
268API exp : changed : strongest strategy renamed ZSTD_btultra, fastest strategy ZSTD_fast set to 1
269tools : decodecorpus can generate random dictionary-compressed samples, by Paul Cruz
270new : contrib/seekable_format, demo and API, by Sean Purcell
271changed : contrib/linux-kernel, updated version and license, by Nick Terrell
272
273v1.2.0
274cli : changed : Multithreading enabled by default (use target zstd-nomt or HAVE_THREAD=0 to disable)
275cli : new : command -T0 means "detect and use nb of cores", by Sean Purcell
276cli : new : zstdmt symlink hardwired to `zstd -T0`
277cli : new : command --threads=# (#671)
278cli : changed : cover dictionary builder by default, for improved quality, by Nick Terrell
279cli : new : commands --train-cover and --train-legacy, to select dictionary algorithm and parameters
280cli : experimental targets `zstd4` and `xzstd4`, with support for lz4 format, by Sean Purcell
281cli : fix : does not output compressed data on console
282cli : fix : ignore symbolic links unless --force specified,
283API : breaking change : ZSTD_createCDict_advanced(), only use compressionParameters as argument
284API : added : prototypes ZSTD_*_usingCDict_advanced(), for direct control over frameParameters.
285API : improved: ZSTDMT_compressCCtx() reduced memory usage
286API : fix : ZSTDMT_compressCCtx() now provides srcSize in header (#634)
287API : fix : src size stored in frame header is controlled at end of frame
288API : fix : enforced consistent rules for pledgedSrcSize==0 (#641)
289API : fix : error code "GENERIC" replaced by "dstSizeTooSmall" when appropriate
290build: improved cmake script, by @Majlen
291build: enabled Multi-threading support for *BSD, by Baptiste Daroussin
292tools: updated Paramgrill. Command -O# provides best parameters for sample and speed target.
293new : contrib/linux-kernel version, by Nick Terrell
294
295v1.1.4
296cli : new : can compress in *.gz format, using --format=gzip command, by Przemyslaw Skibinski
297cli : new : advanced benchmark command --priority=rt
298cli : fix : write on sparse-enabled file systems in 32-bits mode, by @ds77
299cli : fix : --rm remains silent when input is stdin
300cli : experimental : xzstd, with support for xz/lzma decoding, by Przemyslaw Skibinski
301speed : improved decompression speed in streaming mode for single shot scenarios (+5%)
302memory: DDict (decompression dictionary) memory usage down from 150 KB to 20 KB
303arch: 32-bits variant able to generate and decode very long matches (>32 MB), by Sean Purcell
304API : new : ZSTD_findFrameCompressedSize(), ZSTD_getFrameContentSize(), ZSTD_findDecompressedSize()
305API : changed : dropped support of legacy versions <= v0.3 (can be changed by modifying ZSTD_LEGACY_SUPPORT value)
306build : new: meson build system in contrib/meson, by Dima Krasner
307build : improved cmake script, by @Majlen
308build : added -Wformat-security flag, as recommended by Padraig Brady
309doc : new : educational decoder, by Sean Purcell
310
311v1.1.3
312cli : zstd can decompress .gz files (can be disabled with `make zstd-nogz` or `make HAVE_ZLIB=0`)
313cli : new : experimental target `make zstdmt`, with multi-threading support
314cli : new : improved dictionary builder "cover" (experimental), by Nick Terrell, based on prior work by Giuseppe Ottaviano.
315cli : new : advanced commands for detailed parameters, by Przemyslaw Skibinski
316cli : fix zstdless on Mac OS-X, by Andrew Janke
317cli : fix #232 "compress non-files"
318dictBuilder : improved dictionary generation quality, thanks to Nick Terrell
319API : new : lib/compress/ZSTDMT_compress.h multithreading API (experimental)
320API : new : ZSTD_create?Dict_byReference(), requested by Bartosz Taudul
321API : new : ZDICT_finalizeDictionary()
322API : fix : ZSTD_initCStream_usingCDict() properly writes dictID into frame header, by Gregory Szorc (#511)
323API : fix : all symbols properly exposed in libzstd, by Nick Terrell
324build : support for Solaris target, by Przemyslaw Skibinski
325doc : clarified specification, by Sean Purcell
326
327v1.1.2
328API : streaming : decompression : changed : automatic implicit reset when chain-decoding new frames without init
329API : experimental : added : dictID retrieval functions, and ZSTD_initCStream_srcSize()
330API : zbuff : changed : prototypes now generate deprecation warnings
331lib : improved : faster decompression speed at ultra compression settings and 32-bits mode
332lib : changed : only public ZSTD_ symbols are now exposed
333lib : changed : reduced usage  of stack memory
334lib : fixed : several corner case bugs, by Nick Terrell
335cli : new : gzstd, experimental version able to decode .gz files, by Przemyslaw Skibinski
336cli : new : preserve file attributes
337cli : new : added zstdless and zstdgrep tools
338cli : fixed : status displays total amount decoded, even for file consisting of multiple frames (like pzstd)
339cli : fixed : zstdcat
340zlib_wrapper : added support for gz* functions, by Przemyslaw Skibinski
341install : better compatibility with FreeBSD, by Dimitry Andric
342source tree : changed : zbuff source files moved to lib/deprecated
343
344v1.1.1
345New : command -M#, --memory=, --memlimit=, --memlimit-decompress= to limit allowed memory consumption
346New : doc/zstd_manual.html, by Przemyslaw Skibinski
347Improved : slightly better compression ratio at --ultra levels (>= 20)
348Improved : better memory usage when using streaming compression API, thanks to @Rogier-5 report
349Added : API : ZSTD_initCStream_usingCDict(), ZSTD_initDStream_usingDDict() (experimental section)
350Added : example/multiple_streaming_compression.c
351Changed : zstd_errors.h is now installed within /include (and replaces errors_public.h)
352Updated man page
353Fixed : zstd-small, zstd-compress and zstd-decompress compilation targets
354
355v1.1.0
356New : contrib/pzstd, parallel version of zstd, by Nick Terrell
357added : NetBSD install target (#338)
358Improved : speed for batches of small files
359Improved : speed of zlib wrapper, by Przemyslaw Skibinski
360Changed : libzstd on Windows supports legacy formats, by Christophe Chevalier
361Fixed : CLI -d output to stdout by default when input is stdin (#322)
362Fixed : CLI correctly detects console on Mac OS-X
363Fixed : CLI supports recursive mode `-r` on Mac OS-X
364Fixed : Legacy decoders use unified error codes, reported by benrg (#341), fixed by Przemyslaw Skibinski
365Fixed : compatibility with OpenBSD, reported by Juan Francisco Cantero Hurtado (#319)
366Fixed : compatibility with Hurd, by Przemyslaw Skibinski (#365)
367Fixed : zstd-pgo, reported by octoploid (#329)
368
369v1.0.0
370Change Licensing, all project is now BSD, Copyright Facebook
371Small decompression speed improvement
372API : Streaming API supports legacy format
373API : ZDICT_getDictID(), ZSTD_sizeof_{CCtx, DCtx, CStream, DStream}(), ZSTD_setDStreamParameter()
374CLI supports legacy formats v0.4+
375Fixed : compression fails on certain huge files, reported by Jesse McGrew
376Enhanced documentation, by Przemyslaw Skibinski
377
378v0.8.1
379New streaming API
380Changed : --ultra now enables levels beyond 19
381Changed : -i# now selects benchmark time in second
382Fixed : ZSTD_compress* can now compress > 4 GB in a single pass, reported by Nick Terrell
383Fixed : speed regression on specific patterns (#272)
384Fixed : support for Z_SYNC_FLUSH, by Dmitry Krot (#291)
385Fixed : ICC compilation, by Przemyslaw Skibinski
386
387v0.8.0
388Improved : better speed on clang and gcc -O2, thanks to Eric Biggers
389New : Build on FreeBSD and DragonFly, thanks to JrMarino
390Changed : modified API : ZSTD_compressEnd()
391Fixed : legacy mode with ZSTD_HEAPMODE=0, by Christopher Bergqvist
392Fixed : premature end of frame when zero-sized raw block, reported by Eric Biggers
393Fixed : large dictionaries (> 384 KB), reported by Ilona Papava
394Fixed : checksum correctly checked in single-pass mode
395Fixed : combined --test amd --rm, reported by Andreas M. Nilsson
396Modified : minor compression level adaptations
397Updated : compression format specification to v0.2.0
398changed : zstd.h moved to /lib directory
399
400v0.7.5
401Transition version, supporting decoding of v0.8.x
402
403v0.7.4
404Added : homebrew for Mac, by Daniel Cade
405Added : more examples
406Fixed : segfault when using small dictionaries, reported by Felix Handte
407Modified : default compression level for CLI is now 3
408Updated : specification, to v0.1.1
409
410v0.7.3
411New : compression format specification
412New : `--` separator, stating that all following arguments are file names. Suggested by Chip Turner.
413New : `ZSTD_getDecompressedSize()`
414New : OpenBSD target, by Juan Francisco Cantero Hurtado
415New : `examples` directory
416fixed : dictBuilder using HC levels, reported by Bartosz Taudul
417fixed : legacy support from ZSTD_decompress_usingDDict(), reported by Felix Handte
418fixed : multi-blocks decoding with intermediate uncompressed blocks, reported by Greg Slazinski
419modified : removed "mem.h" and "error_public.h" dependencies from "zstd.h" (experimental section)
420modified : legacy functions no longer need magic number
421
422v0.7.2
423fixed : ZSTD_decompressBlock() using multiple consecutive blocks. Reported by Greg Slazinski.
424fixed : potential segfault on very large files (many gigabytes). Reported by Chip Turner.
425fixed : CLI displays system error message when destination file cannot be created (#231). Reported by Chip Turner.
426
427v0.7.1
428fixed : ZBUFF_compressEnd() called multiple times with too small `dst` buffer, reported by Christophe Chevalier
429fixed : dictBuilder fails if first sample is too small, reported by Руслан Ковалёв
430fixed : corruption issue, reported by cj
431modified : checksum enabled by default in command line mode
432
433v0.7.0
434New : Support for directory compression, using `-r`, thanks to Przemyslaw Skibinski
435New : Command `--rm`, to remove source file after successful de/compression
436New : Visual build scripts, by Christophe Chevalier
437New : Support for Sparse File-systems (do not use space for zero-filled sectors)
438New : Frame checksum support
439New : Support pass-through mode (when using `-df`)
440API : more efficient Dictionary API : `ZSTD_compress_usingCDict()`, `ZSTD_decompress_usingDDict()`
441API : create dictionary files from custom content, by Giuseppe Ottaviano
442API : support for custom malloc/free functions
443New : controllable Dictionary ID
444New : Support for skippable frames
445
446v0.6.1
447New : zlib wrapper API, thanks to Przemyslaw Skibinski
448New : Ability to compile compressor / decompressor separately
449Changed : new lib directory structure
450Fixed : Legacy codec v0.5 compatible with dictionary decompression
451Fixed : Decoder corruption error (#173)
452Fixed : null-string roundtrip (#176)
453New : benchmark mode can select directory as input
454Experimental : midipix support, VMS support
455
456v0.6.0
457Stronger high compression modes, thanks to Przemyslaw Skibinski
458API : ZSTD_getFrameParams() provides size of decompressed content
459New : highest compression modes require `--ultra` command to fully unleash their capacity
460Fixed : zstd cli return error code > 0 and removes dst file artifact when decompression fails, thanks to Chip Turner
461
462v0.5.1
463New : Optimal parsing => Very high compression modes, thanks to Przemyslaw Skibinski
464Changed : Dictionary builder integrated into libzstd and zstd cli
465Changed (!) : zstd cli now uses "multiple input files" as default mode. See `zstd -h`.
466Fix : high compression modes for big-endian platforms
467New : zstd cli : `-t` | `--test` command
468
469v0.5.0
470New : dictionary builder utility
471Changed : streaming & dictionary API
472Improved : better compression of small data
473
474v0.4.7
475Improved : small compression speed improvement in HC mode
476Changed : `zstd_decompress.c` has ZSTD_LEGACY_SUPPORT to 0 by default
477fix : bt search bug
478
479v0.4.6
480fix : fast compression mode on Windows
481New : cmake configuration file, thanks to Artyom Dymchenko
482Improved : high compression mode on repetitive data
483New : block-level API
484New : ZSTD_duplicateCCtx()
485
486v0.4.5
487new : -m/--multiple : compress/decompress multiple files
488
489v0.4.4
490Fixed : high compression modes for Windows 32 bits
491new : external dictionary API extended to buffered mode and accessible through command line
492new : windows DLL project, thanks to Christophe Chevalier
493
494v0.4.3 :
495new : external dictionary API
496new : zstd-frugal
497
498v0.4.2 :
499Generic minor improvements for small blocks
500Fixed : big-endian compatibility, by Peter Harris (#85)
501
502v0.4.1
503Fixed : ZSTD_LEGACY_SUPPORT=0 build mode (reported by Luben)
504removed `zstd.c`
505
506v0.4.0
507Command line utility compatible with high compression levels
508Removed zstdhc => merged into zstd
509Added : ZBUFF API (see zstd_buffered.h)
510Rolling buffer support
511
512v0.3.6
513small blocks params
514
515v0.3.5
516minor generic compression improvements
517
518v0.3.4
519Faster fast cLevels
520
521v0.3.3
522Small compression ratio improvement
523
524v0.3.2
525Fixed Visual Studio
526
527v0.3.1 :
528Small compression ratio improvement
529
530v0.3
531HC mode : compression levels 2-26
532
533v0.2.2
534Fix : Visual Studio 2013 & 2015 release compilation, by Christophe Chevalier
535
536v0.2.1
537Fix : Read errors, advanced fuzzer tests, by Hanno Böck
538
539v0.2.0
540**Breaking format change**
541Faster decompression speed
542Can still decode v0.1 format
543
544v0.1.3
545fix uninitialization warning, reported by Evan Nemerson
546
547v0.1.2
548frame concatenation support
549
550v0.1.1
551fix compression bug
552detects write-flush errors
553
554v0.1.0
555first release
556