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