1v1.3.4
2perf: faster speed (especially decoding speed) on recent cpus (haswell+)
3perf: much better performance associating --long with multi-threading, by @terrelln
4perf: better compression at levels 13-15
5cli : asynchronous compression by default, for faster experience (use --single-thread for former behavior)
6cli : smoother status report in multi-threading mode
7cli : added command --fast=#, for faster compression modes
8cli : fix crash when not overwriting existing files, by P��draig Brady (@pixelb)
9api : `nbThreads` becomes `nbWorkers` : 1 triggers asynchronous mode
10api : compression levels can be negative, for even more speed
11api : ZSTD_getFrameProgression() : get precise progress status of ZSTDMT anytime
12api : ZSTDMT can accept new compression parameters during compression
13api : implemented all advanced dictionary decompression prototypes
14build: improved meson recipe, by Shawn Landden (@shawnl)
15build: VS2017 scripts, by @HaydnTrigg
16misc: all /contrib projects fixed
17misc: added /contrib/docker script by @gyscos
18
19v1.3.3
20perf: faster zstd_opt strategy (levels 16-19)
21fix : bug #944 : multithreading with shared ditionary and large data, reported by @gsliepen
22cli : fix : content size written in header by default
23cli : fix : improved LZ4 format support, by @felixhandte
24cli : new : hidden command `-S`, to benchmark multiple files while generating one result per file
25api : fix : support large skippable frames, by @terrelln
26api : fix : streaming interface was adding a useless 3-bytes null block to small frames
27api : change : when setting `pledgedSrcSize`, use `ZSTD_CONTENTSIZE_UNKNOWN` macro value to mean "unknown"
28build: fix : compilation under rhel6 and centos6, reported by @pixelb
29build: added `check` target
30
31v1.3.2
32new : long range mode, using --long command, by Stella Lau (@stellamplau)
33new : ability to generate and decode magicless frames (#591)
34changed : maximum nb of threads reduced to 200, to avoid address space exhaustion in 32-bits mode
35fix : multi-threading compression works with custom allocators
36fix : ZSTD_sizeof_CStream() was over-evaluating memory usage
37fix : a rare compression bug when compression generates very large distances and bunch of other conditions (only possible at --ultra -22)
38fix : 32-bits build can now decode large offsets (levels 21+)
39cli : added LZ4 frame support by default, by Felix Handte (@felixhandte)
40cli : improved --list output
41cli : new : can split input file for dictionary training, using command -B#
42cli : new : clean operation artefact on Ctrl-C interruption
43cli : fix : do not change /dev/null permissions when using command -t with root access, reported by @mike155 (#851)
44cli : fix : write file size in header in multiple-files mode
45api : added macro ZSTD_COMPRESSBOUND() for static allocation
46api : experimental : new advanced decompression API
47api : fix : sizeof_CCtx() used to over-estimate
48build: fix : no-multithread variant compiles without pool.c dependency, reported by Mitchell Blank Jr (@mitchblank) (#819)
49build: better compatibility with reproducible builds, by Bernhard M. Wiedemann (@bmwiedemann) (#818)
50example : added streaming_memory_usage
51license : changed /examples license to BSD + GPLv2
52license : fix a few header files to reflect new license (#825)
53
54v1.3.1
55New license : BSD + GPLv2
56perf: substantially decreased memory usage in Multi-threading mode, thanks to reports by Tino Reichardt (@mcmilk)
57perf: Multi-threading supports up to 256 threads. Cap at 256 when more are requested (#760)
58cli : improved and fixed --list command, by @ib (#772)
59cli : command -vV to list supported formats, by @ib (#771)
60build : fixed binary variants, reported by @svenha (#788)
61build : fix Visual compilation for non x86/x64 targets, reported by Greg Slazinski (@GregSlazinski) (#718)
62API exp : breaking change : ZSTD_getframeHeader() provides more information
63API exp : breaking change : pinned down values of error codes
64doc : fixed huffman example, by Ulrich Kunitz (@ulikunitz)
65new : contrib/adaptive-compression, I/O driven compression strength, by Paul Cruz (@paulcruz74)
66new : contrib/long_distance_matching, statistics by Stella Lau (@stellamplau)
67updated : contrib/linux-kernel, by Nick Terrell (@terrelln)
68
69v1.3.0
70cli : new : `--list` command, by Paul Cruz
71cli : changed : xz/lzma support enabled by default
72cli : changed : `-t *` continue processing list after a decompression error
73API : added : ZSTD_versionString()
74API : promoted to stable status : ZSTD_getFrameContentSize(), by Sean Purcell
75API exp : new advanced API : ZSTD_compress_generic(), ZSTD_CCtx_setParameter()
76API exp : new : API for static or external allocation : ZSTD_initStatic?Ctx()
77API exp : added : ZSTD_decompressBegin_usingDDict(), requested by Guy Riddle (#700)
78API exp : clarified memory estimation / measurement functions.
79API exp : changed : strongest strategy renamed ZSTD_btultra, fastest strategy ZSTD_fast set to 1
80tools : decodecorpus can generate random dictionary-compressed samples, by Paul Cruz
81new : contrib/seekable_format, demo and API, by Sean Purcell
82changed : contrib/linux-kernel, updated version and license, by Nick Terrell
83
84v1.2.0
85cli : changed : Multithreading enabled by default (use target zstd-nomt or HAVE_THREAD=0 to disable)
86cli : new : command -T0 means "detect and use nb of cores", by Sean Purcell
87cli : new : zstdmt symlink hardwired to `zstd -T0`
88cli : new : command --threads=# (#671)
89cli : changed : cover dictionary builder by default, for improved quality, by Nick Terrell
90cli : new : commands --train-cover and --train-legacy, to select dictionary algorithm and parameters
91cli : experimental targets `zstd4` and `xzstd4`, with support for lz4 format, by Sean Purcell
92cli : fix : does not output compressed data on console
93cli : fix : ignore symbolic links unless --force specified,
94API : breaking change : ZSTD_createCDict_advanced(), only use compressionParameters as argument
95API : added : prototypes ZSTD_*_usingCDict_advanced(), for direct control over frameParameters.
96API : improved: ZSTDMT_compressCCtx() reduced memory usage
97API : fix : ZSTDMT_compressCCtx() now provides srcSize in header (#634)
98API : fix : src size stored in frame header is controlled at end of frame
99API : fix : enforced consistent rules for pledgedSrcSize==0 (#641)
100API : fix : error code "GENERIC" replaced by "dstSizeTooSmall" when appropriate
101build: improved cmake script, by @Majlen
102build: enabled Multi-threading support for *BSD, by Baptiste Daroussin
103tools: updated Paramgrill. Command -O# provides best parameters for sample and speed target.
104new : contrib/linux-kernel version, by Nick Terrell
105
106v1.1.4
107cli : new : can compress in *.gz format, using --format=gzip command, by Przemyslaw Skibinski
108cli : new : advanced benchmark command --priority=rt
109cli : fix : write on sparse-enabled file systems in 32-bits mode, by @ds77
110cli : fix : --rm remains silent when input is stdin
111cli : experimental : xzstd, with support for xz/lzma decoding, by Przemyslaw Skibinski
112speed : improved decompression speed in streaming mode for single shot scenarios (+5%)
113memory: DDict (decompression dictionary) memory usage down from 150 KB to 20 KB
114arch: 32-bits variant able to generate and decode very long matches (>32 MB), by Sean Purcell
115API : new : ZSTD_findFrameCompressedSize(), ZSTD_getFrameContentSize(), ZSTD_findDecompressedSize()
116API : changed : dropped support of legacy versions <= v0.3 (can be changed by modifying ZSTD_LEGACY_SUPPORT value)
117build : new: meson build system in contrib/meson, by Dima Krasner
118build : improved cmake script, by @Majlen
119build : added -Wformat-security flag, as recommended by Padraig Brady
120doc : new : educational decoder, by Sean Purcell
121
122v1.1.3
123cli : zstd can decompress .gz files (can be disabled with `make zstd-nogz` or `make HAVE_ZLIB=0`)
124cli : new : experimental target `make zstdmt`, with multi-threading support
125cli : new : improved dictionary builder "cover" (experimental), by Nick Terrell, based on prior work by Giuseppe Ottaviano.
126cli : new : advanced commands for detailed parameters, by Przemyslaw Skibinski
127cli : fix zstdless on Mac OS-X, by Andrew Janke
128cli : fix #232 "compress non-files"
129dictBuilder : improved dictionary generation quality, thanks to Nick Terrell
130API : new : lib/compress/ZSTDMT_compress.h multithreading API (experimental)
131API : new : ZSTD_create?Dict_byReference(), requested by Bartosz Taudul
132API : new : ZDICT_finalizeDictionary()
133API : fix : ZSTD_initCStream_usingCDict() properly writes dictID into frame header, by Gregory Szorc (#511)
134API : fix : all symbols properly exposed in libzstd, by Nick Terrell
135build : support for Solaris target, by Przemyslaw Skibinski
136doc : clarified specification, by Sean Purcell
137
138v1.1.2
139API : streaming : decompression : changed : automatic implicit reset when chain-decoding new frames without init
140API : experimental : added : dictID retrieval functions, and ZSTD_initCStream_srcSize()
141API : zbuff : changed : prototypes now generate deprecation warnings
142lib : improved : faster decompression speed at ultra compression settings and 32-bits mode
143lib : changed : only public ZSTD_ symbols are now exposed
144lib : changed : reduced usage  of stack memory
145lib : fixed : several corner case bugs, by Nick Terrell
146cli : new : gzstd, experimental version able to decode .gz files, by Przemyslaw Skibinski
147cli : new : preserve file attributes
148cli : new : added zstdless and zstdgrep tools
149cli : fixed : status displays total amount decoded, even for file consisting of multiple frames (like pzstd)
150cli : fixed : zstdcat
151zlib_wrapper : added support for gz* functions, by Przemyslaw Skibinski
152install : better compatibility with FreeBSD, by Dimitry Andric
153source tree : changed : zbuff source files moved to lib/deprecated
154
155v1.1.1
156New : command -M#, --memory=, --memlimit=, --memlimit-decompress= to limit allowed memory consumption
157New : doc/zstd_manual.html, by Przemyslaw Skibinski
158Improved : slightly better compression ratio at --ultra levels (>= 20)
159Improved : better memory usage when using streaming compression API, thanks to @Rogier-5 report
160Added : API : ZSTD_initCStream_usingCDict(), ZSTD_initDStream_usingDDict() (experimental section)
161Added : example/multiple_streaming_compression.c
162Changed : zstd_errors.h is now installed within /include (and replaces errors_public.h)
163Updated man page
164Fixed : zstd-small, zstd-compress and zstd-decompress compilation targets
165
166v1.1.0
167New : contrib/pzstd, parallel version of zstd, by Nick Terrell
168added : NetBSD install target (#338)
169Improved : speed for batches of small files
170Improved : speed of zlib wrapper, by Przemyslaw Skibinski
171Changed : libzstd on Windows supports legacy formats, by Christophe Chevalier
172Fixed : CLI -d output to stdout by default when input is stdin (#322)
173Fixed : CLI correctly detects console on Mac OS-X
174Fixed : CLI supports recursive mode `-r` on Mac OS-X
175Fixed : Legacy decoders use unified error codes, reported by benrg (#341), fixed by Przemyslaw Skibinski
176Fixed : compatibility with OpenBSD, reported by Juan Francisco Cantero Hurtado (#319)
177Fixed : compatibility with Hurd, by Przemyslaw Skibinski (#365)
178Fixed : zstd-pgo, reported by octoploid (#329)
179
180v1.0.0
181Change Licensing, all project is now BSD, Copyright Facebook
182Small decompression speed improvement
183API : Streaming API supports legacy format
184API : ZDICT_getDictID(), ZSTD_sizeof_{CCtx, DCtx, CStream, DStream}(), ZSTD_setDStreamParamter()
185CLI supports legacy formats v0.4+
186Fixed : compression fails on certain huge files, reported by Jesse McGrew
187Enhanced documentation, by Przemyslaw Skibinski
188
189v0.8.1
190New streaming API
191Changed : --ultra now enables levels beyond 19
192Changed : -i# now selects benchmark time in second
193Fixed : ZSTD_compress* can now compress > 4 GB in a single pass, reported by Nick Terrell
194Fixed : speed regression on specific patterns (#272)
195Fixed : support for Z_SYNC_FLUSH, by Dmitry Krot (#291)
196Fixed : ICC compilation, by Przemyslaw Skibinski
197
198v0.8.0
199Improved : better speed on clang and gcc -O2, thanks to Eric Biggers
200New : Build on FreeBSD and DragonFly, thanks to JrMarino
201Changed : modified API : ZSTD_compressEnd()
202Fixed : legacy mode with ZSTD_HEAPMODE=0, by Christopher Bergqvist
203Fixed : premature end of frame when zero-sized raw block, reported by Eric Biggers
204Fixed : large dictionaries (> 384 KB), reported by Ilona Papava
205Fixed : checksum correctly checked in single-pass mode
206Fixed : combined --test amd --rm, reported by Andreas M. Nilsson
207Modified : minor compression level adaptations
208Updated : compression format specification to v0.2.0
209changed : zstd.h moved to /lib directory
210
211v0.7.5
212Transition version, supporting decoding of v0.8.x
213
214v0.7.4
215Added : homebrew for Mac, by Daniel Cade
216Added : more examples
217Fixed : segfault when using small dictionaries, reported by Felix Handte
218Modified : default compression level for CLI is now 3
219Updated : specification, to v0.1.1
220
221v0.7.3
222New : compression format specification
223New : `--` separator, stating that all following arguments are file names. Suggested by Chip Turner.
224New : `ZSTD_getDecompressedSize()`
225New : OpenBSD target, by Juan Francisco Cantero Hurtado
226New : `examples` directory
227fixed : dictBuilder using HC levels, reported by Bartosz Taudul
228fixed : legacy support from ZSTD_decompress_usingDDict(), reported by Felix Handte
229fixed : multi-blocks decoding with intermediate uncompressed blocks, reported by Greg Slazinski
230modified : removed "mem.h" and "error_public.h" dependencies from "zstd.h" (experimental section)
231modified : legacy functions no longer need magic number
232
233v0.7.2
234fixed : ZSTD_decompressBlock() using multiple consecutive blocks. Reported by Greg Slazinski.
235fixed : potential segfault on very large files (many gigabytes). Reported by Chip Turner.
236fixed : CLI displays system error message when destination file cannot be created (#231). Reported by Chip Turner.
237
238v0.7.1
239fixed : ZBUFF_compressEnd() called multiple times with too small `dst` buffer, reported by Christophe Chevalier
240fixed : dictBuilder fails if first sample is too small, reported by ������������ ��������������
241fixed : corruption issue, reported by cj
242modified : checksum enabled by default in command line mode
243
244v0.7.0
245New : Support for directory compression, using `-r`, thanks to Przemyslaw Skibinski
246New : Command `--rm`, to remove source file after successful de/compression
247New : Visual build scripts, by Christophe Chevalier
248New : Support for Sparse File-systems (do not use space for zero-filled sectors)
249New : Frame checksum support
250New : Support pass-through mode (when using `-df`)
251API : more efficient Dictionary API : `ZSTD_compress_usingCDict()`, `ZSTD_decompress_usingDDict()`
252API : create dictionary files from custom content, by Giuseppe Ottaviano
253API : support for custom malloc/free functions
254New : controllable Dictionary ID
255New : Support for skippable frames
256
257v0.6.1
258New : zlib wrapper API, thanks to Przemyslaw Skibinski
259New : Ability to compile compressor / decompressor separately
260Changed : new lib directory structure
261Fixed : Legacy codec v0.5 compatible with dictionary decompression
262Fixed : Decoder corruption error (#173)
263Fixed : null-string roundtrip (#176)
264New : benchmark mode can select directory as input
265Experimental : midipix support, VMS support
266
267v0.6.0
268Stronger high compression modes, thanks to Przemyslaw Skibinski
269API : ZSTD_getFrameParams() provides size of decompressed content
270New : highest compression modes require `--ultra` command to fully unleash their capacity
271Fixed : zstd cli return error code > 0 and removes dst file artifact when decompression fails, thanks to Chip Turner
272
273v0.5.1
274New : Optimal parsing => Very high compression modes, thanks to Przemyslaw Skibinski
275Changed : Dictionary builder integrated into libzstd and zstd cli
276Changed (!) : zstd cli now uses "multiple input files" as default mode. See `zstd -h`.
277Fix : high compression modes for big-endian platforms
278New : zstd cli : `-t` | `--test` command
279
280v0.5.0
281New : dictionary builder utility
282Changed : streaming & dictionary API
283Improved : better compression of small data
284
285v0.4.7
286Improved : small compression speed improvement in HC mode
287Changed : `zstd_decompress.c` has ZSTD_LEGACY_SUPPORT to 0 by default
288fix : bt search bug
289
290v0.4.6
291fix : fast compression mode on Windows
292New : cmake configuration file, thanks to Artyom Dymchenko
293Improved : high compression mode on repetitive data
294New : block-level API
295New : ZSTD_duplicateCCtx()
296
297v0.4.5
298new : -m/--multiple : compress/decompress multiple files
299
300v0.4.4
301Fixed : high compression modes for Windows 32 bits
302new : external dictionary API extended to buffered mode and accessible through command line
303new : windows DLL project, thanks to Christophe Chevalier
304
305v0.4.3 :
306new : external dictionary API
307new : zstd-frugal
308
309v0.4.2 :
310Generic minor improvements for small blocks
311Fixed : big-endian compatibility, by Peter Harris (#85)
312
313v0.4.1
314Fixed : ZSTD_LEGACY_SUPPORT=0 build mode (reported by Luben)
315removed `zstd.c`
316
317v0.4.0
318Command line utility compatible with high compression levels
319Removed zstdhc => merged into zstd
320Added : ZBUFF API (see zstd_buffered.h)
321Rolling buffer support
322
323v0.3.6
324small blocks params
325
326v0.3.5
327minor generic compression improvements
328
329v0.3.4
330Faster fast cLevels
331
332v0.3.3
333Small compression ratio improvement
334
335v0.3.2
336Fixed Visual Studio
337
338v0.3.1 :
339Small compression ratio improvement
340
341v0.3
342HC mode : compression levels 2-26
343
344v0.2.2
345Fix : Visual Studio 2013 & 2015 release compilation, by Christophe Chevalier
346
347v0.2.1
348Fix : Read errors, advanced fuzzer tests, by Hanno B��ck
349
350v0.2.0
351**Breaking format change**
352Faster decompression speed
353Can still decode v0.1 format
354
355v0.1.3
356fix uninitialization warning, reported by Evan Nemerson
357
358v0.1.2
359frame concatenation support
360
361v0.1.1
362fix compression bug
363detects write-flush errors
364
365v0.1.0
366first release
367