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