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