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