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