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