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