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