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