| v1.3.7 |
| perf: slightly better decompression speed on clang (depending on hardware target) |
| fix : performance of dictionary compression for small input < 4 KB at levels 9 and 10 |
| build: no longer build backtrace by default in release mode; restrict further automatic mode |
| build: control backtrace support through build macro BACKTRACE |
| misc: added man pages for zstdless and zstdgrep, by @samrussell |
| |
| v1.3.6 |
| perf: much faster dictionary builder, by @jenniferliu |
| perf: faster dictionary compression on small data when using multiple contexts, by @felixhandte |
| perf: faster dictionary decompression when using a very large number of dictionaries simultaneously |
| cli : fix : does no longer overwrite destination when source does not exist (#1082) |
| cli : new command --adapt, for automatic compression level adaptation |
| api : fix : block api can be streamed with > 4 GB, reported by @catid |
| api : reduced ZSTD_DDict size by 2 KB |
| api : minimum negative compression level is defined, and can be queried using ZSTD_minCLevel(). |
| build: support Haiku target, by @korli |
| build: Read Legacy format is limited to v0.5+ by default. Can be changed at compile time with macro ZSTD_LEGACY_SUPPORT. |
| doc : zstd_compression_format.md updated to match wording in IETF RFC 8478 |
| misc: tests/paramgrill, a parameter optimizer, by @GeorgeLu97 |
| |
| v1.3.5 |
| perf: much faster dictionary compression, by @felixhandte |
| perf: small quality improvement for dictionary generation, by @terrelln |
| perf: slightly improved high compression levels (notably level 19) |
| mem : automatic memory release for long duration contexts |
| cli : fix : overlapLog can be manually set |
| cli : fix : decoding invalid lz4 frames |
| api : fix : performance degradation for dictionary compression when using advanced API, by @terrelln |
| api : change : clarify ZSTD_CCtx_reset() vs ZSTD_CCtx_resetParameters(), by @terrelln |
| build: select custom libzstd scope through control macros, by @GeorgeLu97 |
| build: OpenBSD patch, by @bket |
| build: make and make all are compatible with -j |
| doc : clarify zstd_compression_format.md, updated for IETF RFC process |
| misc: pzstd compatible with reproducible compilation, by @lamby |
| |
| v1.3.4 |
| perf: faster speed (especially decoding speed) on recent cpus (haswell+) |
| perf: much better performance associating --long with multi-threading, by @terrelln |
| perf: better compression at levels 13-15 |
| cli : asynchronous compression by default, for faster experience (use --single-thread for former behavior) |
| cli : smoother status report in multi-threading mode |
| cli : added command --fast=#, for faster compression modes |
| cli : fix crash when not overwriting existing files, by Pádraig Brady (@pixelb) |
| api : `nbThreads` becomes `nbWorkers` : 1 triggers asynchronous mode |
| api : compression levels can be negative, for even more speed |
| api : ZSTD_getFrameProgression() : get precise progress status of ZSTDMT anytime |
| api : ZSTDMT can accept new compression parameters during compression |
| api : implemented all advanced dictionary decompression prototypes |
| build: improved meson recipe, by Shawn Landden (@shawnl) |
| build: VS2017 scripts, by @HaydnTrigg |
| misc: all /contrib projects fixed |
| misc: added /contrib/docker script by @gyscos |
| |
| v1.3.3 |
| perf: faster zstd_opt strategy (levels 16-19) |
| fix : bug #944 : multithreading with shared ditionary and large data, reported by @gsliepen |
| cli : fix : content size written in header by default |
| cli : fix : improved LZ4 format support, by @felixhandte |
| cli : new : hidden command `-S`, to benchmark multiple files while generating one result per file |
| api : fix : support large skippable frames, by @terrelln |
| api : fix : streaming interface was adding a useless 3-bytes null block to small frames |
| api : change : when setting `pledgedSrcSize`, use `ZSTD_CONTENTSIZE_UNKNOWN` macro value to mean "unknown" |
| build: fix : compilation under rhel6 and centos6, reported by @pixelb |
| build: added `check` target |
| |
| v1.3.2 |
| new : long range mode, using --long command, by Stella Lau (@stellamplau) |
| new : ability to generate and decode magicless frames (#591) |
| changed : maximum nb of threads reduced to 200, to avoid address space exhaustion in 32-bits mode |
| fix : multi-threading compression works with custom allocators |
| fix : ZSTD_sizeof_CStream() was over-evaluating memory usage |
| fix : a rare compression bug when compression generates very large distances and bunch of other conditions (only possible at --ultra -22) |
| fix : 32-bits build can now decode large offsets (levels 21+) |
| cli : added LZ4 frame support by default, by Felix Handte (@felixhandte) |
| cli : improved --list output |
| cli : new : can split input file for dictionary training, using command -B# |
| cli : new : clean operation artefact on Ctrl-C interruption |
| cli : fix : do not change /dev/null permissions when using command -t with root access, reported by @mike155 (#851) |
| cli : fix : write file size in header in multiple-files mode |
| api : added macro ZSTD_COMPRESSBOUND() for static allocation |
| api : experimental : new advanced decompression API |
| api : fix : sizeof_CCtx() used to over-estimate |
| build: fix : no-multithread variant compiles without pool.c dependency, reported by Mitchell Blank Jr (@mitchblank) (#819) |
| build: better compatibility with reproducible builds, by Bernhard M. Wiedemann (@bmwiedemann) (#818) |
| example : added streaming_memory_usage |
| license : changed /examples license to BSD + GPLv2 |
| license : fix a few header files to reflect new license (#825) |
| |
| v1.3.1 |
| New license : BSD + GPLv2 |
| perf: substantially decreased memory usage in Multi-threading mode, thanks to reports by Tino Reichardt (@mcmilk) |
| perf: Multi-threading supports up to 256 threads. Cap at 256 when more are requested (#760) |
| cli : improved and fixed --list command, by @ib (#772) |
| cli : command -vV to list supported formats, by @ib (#771) |
| build : fixed binary variants, reported by @svenha (#788) |
| build : fix Visual compilation for non x86/x64 targets, reported by Greg Slazinski (@GregSlazinski) (#718) |
| API exp : breaking change : ZSTD_getframeHeader() provides more information |
| API exp : breaking change : pinned down values of error codes |
| doc : fixed huffman example, by Ulrich Kunitz (@ulikunitz) |
| new : contrib/adaptive-compression, I/O driven compression strength, by Paul Cruz (@paulcruz74) |
| new : contrib/long_distance_matching, statistics by Stella Lau (@stellamplau) |
| updated : contrib/linux-kernel, by Nick Terrell (@terrelln) |
| |
| v1.3.0 |
| cli : new : `--list` command, by Paul Cruz |
| cli : changed : xz/lzma support enabled by default |
| cli : changed : `-t *` continue processing list after a decompression error |
| API : added : ZSTD_versionString() |
| API : promoted to stable status : ZSTD_getFrameContentSize(), by Sean Purcell |
| API exp : new advanced API : ZSTD_compress_generic(), ZSTD_CCtx_setParameter() |
| API exp : new : API for static or external allocation : ZSTD_initStatic?Ctx() |
| API exp : added : ZSTD_decompressBegin_usingDDict(), requested by Guy Riddle (#700) |
| API exp : clarified memory estimation / measurement functions. |
| API exp : changed : strongest strategy renamed ZSTD_btultra, fastest strategy ZSTD_fast set to 1 |
| tools : decodecorpus can generate random dictionary-compressed samples, by Paul Cruz |
| new : contrib/seekable_format, demo and API, by Sean Purcell |
| changed : contrib/linux-kernel, updated version and license, by Nick Terrell |
| |
| v1.2.0 |
| cli : changed : Multithreading enabled by default (use target zstd-nomt or HAVE_THREAD=0 to disable) |
| cli : new : command -T0 means "detect and use nb of cores", by Sean Purcell |
| cli : new : zstdmt symlink hardwired to `zstd -T0` |
| cli : new : command --threads=# (#671) |
| cli : changed : cover dictionary builder by default, for improved quality, by Nick Terrell |
| cli : new : commands --train-cover and --train-legacy, to select dictionary algorithm and parameters |
| cli : experimental targets `zstd4` and `xzstd4`, with support for lz4 format, by Sean Purcell |
| cli : fix : does not output compressed data on console |
| cli : fix : ignore symbolic links unless --force specified, |
| API : breaking change : ZSTD_createCDict_advanced(), only use compressionParameters as argument |
| API : added : prototypes ZSTD_*_usingCDict_advanced(), for direct control over frameParameters. |
| API : improved: ZSTDMT_compressCCtx() reduced memory usage |
| API : fix : ZSTDMT_compressCCtx() now provides srcSize in header (#634) |
| API : fix : src size stored in frame header is controlled at end of frame |
| API : fix : enforced consistent rules for pledgedSrcSize==0 (#641) |
| API : fix : error code "GENERIC" replaced by "dstSizeTooSmall" when appropriate |
| build: improved cmake script, by @Majlen |
| build: enabled Multi-threading support for *BSD, by Baptiste Daroussin |
| tools: updated Paramgrill. Command -O# provides best parameters for sample and speed target. |
| new : contrib/linux-kernel version, by Nick Terrell |
| |
| v1.1.4 |
| cli : new : can compress in *.gz format, using --format=gzip command, by Przemyslaw Skibinski |
| cli : new : advanced benchmark command --priority=rt |
| cli : fix : write on sparse-enabled file systems in 32-bits mode, by @ds77 |
| cli : fix : --rm remains silent when input is stdin |
| cli : experimental : xzstd, with support for xz/lzma decoding, by Przemyslaw Skibinski |
| speed : improved decompression speed in streaming mode for single shot scenarios (+5%) |
| memory: DDict (decompression dictionary) memory usage down from 150 KB to 20 KB |
| arch: 32-bits variant able to generate and decode very long matches (>32 MB), by Sean Purcell |
| API : new : ZSTD_findFrameCompressedSize(), ZSTD_getFrameContentSize(), ZSTD_findDecompressedSize() |
| API : changed : dropped support of legacy versions <= v0.3 (can be changed by modifying ZSTD_LEGACY_SUPPORT value) |
| build : new: meson build system in contrib/meson, by Dima Krasner |
| build : improved cmake script, by @Majlen |
| build : added -Wformat-security flag, as recommended by Padraig Brady |
| doc : new : educational decoder, by Sean Purcell |
| |
| v1.1.3 |
| cli : zstd can decompress .gz files (can be disabled with `make zstd-nogz` or `make HAVE_ZLIB=0`) |
| cli : new : experimental target `make zstdmt`, with multi-threading support |
| cli : new : improved dictionary builder "cover" (experimental), by Nick Terrell, based on prior work by Giuseppe Ottaviano. |
| cli : new : advanced commands for detailed parameters, by Przemyslaw Skibinski |
| cli : fix zstdless on Mac OS-X, by Andrew Janke |
| cli : fix #232 "compress non-files" |
| dictBuilder : improved dictionary generation quality, thanks to Nick Terrell |
| API : new : lib/compress/ZSTDMT_compress.h multithreading API (experimental) |
| API : new : ZSTD_create?Dict_byReference(), requested by Bartosz Taudul |
| API : new : ZDICT_finalizeDictionary() |
| API : fix : ZSTD_initCStream_usingCDict() properly writes dictID into frame header, by Gregory Szorc (#511) |
| API : fix : all symbols properly exposed in libzstd, by Nick Terrell |
| build : support for Solaris target, by Przemyslaw Skibinski |
| doc : clarified specification, by Sean Purcell |
| |
| v1.1.2 |
| API : streaming : decompression : changed : automatic implicit reset when chain-decoding new frames without init |
| API : experimental : added : dictID retrieval functions, and ZSTD_initCStream_srcSize() |
| API : zbuff : changed : prototypes now generate deprecation warnings |
| lib : improved : faster decompression speed at ultra compression settings and 32-bits mode |
| lib : changed : only public ZSTD_ symbols are now exposed |
| lib : changed : reduced usage of stack memory |
| lib : fixed : several corner case bugs, by Nick Terrell |
| cli : new : gzstd, experimental version able to decode .gz files, by Przemyslaw Skibinski |
| cli : new : preserve file attributes |
| cli : new : added zstdless and zstdgrep tools |
| cli : fixed : status displays total amount decoded, even for file consisting of multiple frames (like pzstd) |
| cli : fixed : zstdcat |
| zlib_wrapper : added support for gz* functions, by Przemyslaw Skibinski |
| install : better compatibility with FreeBSD, by Dimitry Andric |
| source tree : changed : zbuff source files moved to lib/deprecated |
| |
| v1.1.1 |
| New : command -M#, --memory=, --memlimit=, --memlimit-decompress= to limit allowed memory consumption |
| New : doc/zstd_manual.html, by Przemyslaw Skibinski |
| Improved : slightly better compression ratio at --ultra levels (>= 20) |
| Improved : better memory usage when using streaming compression API, thanks to @Rogier-5 report |
| Added : API : ZSTD_initCStream_usingCDict(), ZSTD_initDStream_usingDDict() (experimental section) |
| Added : example/multiple_streaming_compression.c |
| Changed : zstd_errors.h is now installed within /include (and replaces errors_public.h) |
| Updated man page |
| Fixed : zstd-small, zstd-compress and zstd-decompress compilation targets |
| |
| v1.1.0 |
| New : contrib/pzstd, parallel version of zstd, by Nick Terrell |
| added : NetBSD install target (#338) |
| Improved : speed for batches of small files |
| Improved : speed of zlib wrapper, by Przemyslaw Skibinski |
| Changed : libzstd on Windows supports legacy formats, by Christophe Chevalier |
| Fixed : CLI -d output to stdout by default when input is stdin (#322) |
| Fixed : CLI correctly detects console on Mac OS-X |
| Fixed : CLI supports recursive mode `-r` on Mac OS-X |
| Fixed : Legacy decoders use unified error codes, reported by benrg (#341), fixed by Przemyslaw Skibinski |
| Fixed : compatibility with OpenBSD, reported by Juan Francisco Cantero Hurtado (#319) |
| Fixed : compatibility with Hurd, by Przemyslaw Skibinski (#365) |
| Fixed : zstd-pgo, reported by octoploid (#329) |
| |
| v1.0.0 |
| Change Licensing, all project is now BSD, Copyright Facebook |
| Small decompression speed improvement |
| API : Streaming API supports legacy format |
| API : ZDICT_getDictID(), ZSTD_sizeof_{CCtx, DCtx, CStream, DStream}(), ZSTD_setDStreamParamter() |
| CLI supports legacy formats v0.4+ |
| Fixed : compression fails on certain huge files, reported by Jesse McGrew |
| Enhanced documentation, by Przemyslaw Skibinski |
| |
| v0.8.1 |
| New streaming API |
| Changed : --ultra now enables levels beyond 19 |
| Changed : -i# now selects benchmark time in second |
| Fixed : ZSTD_compress* can now compress > 4 GB in a single pass, reported by Nick Terrell |
| Fixed : speed regression on specific patterns (#272) |
| Fixed : support for Z_SYNC_FLUSH, by Dmitry Krot (#291) |
| Fixed : ICC compilation, by Przemyslaw Skibinski |
| |
| v0.8.0 |
| Improved : better speed on clang and gcc -O2, thanks to Eric Biggers |
| New : Build on FreeBSD and DragonFly, thanks to JrMarino |
| Changed : modified API : ZSTD_compressEnd() |
| Fixed : legacy mode with ZSTD_HEAPMODE=0, by Christopher Bergqvist |
| Fixed : premature end of frame when zero-sized raw block, reported by Eric Biggers |
| Fixed : large dictionaries (> 384 KB), reported by Ilona Papava |
| Fixed : checksum correctly checked in single-pass mode |
| Fixed : combined --test amd --rm, reported by Andreas M. Nilsson |
| Modified : minor compression level adaptations |
| Updated : compression format specification to v0.2.0 |
| changed : zstd.h moved to /lib directory |
| |
| v0.7.5 |
| Transition version, supporting decoding of v0.8.x |
| |
| v0.7.4 |
| Added : homebrew for Mac, by Daniel Cade |
| Added : more examples |
| Fixed : segfault when using small dictionaries, reported by Felix Handte |
| Modified : default compression level for CLI is now 3 |
| Updated : specification, to v0.1.1 |
| |
| v0.7.3 |
| New : compression format specification |
| New : `--` separator, stating that all following arguments are file names. Suggested by Chip Turner. |
| New : `ZSTD_getDecompressedSize()` |
| New : OpenBSD target, by Juan Francisco Cantero Hurtado |
| New : `examples` directory |
| fixed : dictBuilder using HC levels, reported by Bartosz Taudul |
| fixed : legacy support from ZSTD_decompress_usingDDict(), reported by Felix Handte |
| fixed : multi-blocks decoding with intermediate uncompressed blocks, reported by Greg Slazinski |
| modified : removed "mem.h" and "error_public.h" dependencies from "zstd.h" (experimental section) |
| modified : legacy functions no longer need magic number |
| |
| v0.7.2 |
| fixed : ZSTD_decompressBlock() using multiple consecutive blocks. Reported by Greg Slazinski. |
| fixed : potential segfault on very large files (many gigabytes). Reported by Chip Turner. |
| fixed : CLI displays system error message when destination file cannot be created (#231). Reported by Chip Turner. |
| |
| v0.7.1 |
| fixed : ZBUFF_compressEnd() called multiple times with too small `dst` buffer, reported by Christophe Chevalier |
| fixed : dictBuilder fails if first sample is too small, reported by Руслан Ковалёв |
| fixed : corruption issue, reported by cj |
| modified : checksum enabled by default in command line mode |
| |
| v0.7.0 |
| New : Support for directory compression, using `-r`, thanks to Przemyslaw Skibinski |
| New : Command `--rm`, to remove source file after successful de/compression |
| New : Visual build scripts, by Christophe Chevalier |
| New : Support for Sparse File-systems (do not use space for zero-filled sectors) |
| New : Frame checksum support |
| New : Support pass-through mode (when using `-df`) |
| API : more efficient Dictionary API : `ZSTD_compress_usingCDict()`, `ZSTD_decompress_usingDDict()` |
| API : create dictionary files from custom content, by Giuseppe Ottaviano |
| API : support for custom malloc/free functions |
| New : controllable Dictionary ID |
| New : Support for skippable frames |
| |
| v0.6.1 |
| New : zlib wrapper API, thanks to Przemyslaw Skibinski |
| New : Ability to compile compressor / decompressor separately |
| Changed : new lib directory structure |
| Fixed : Legacy codec v0.5 compatible with dictionary decompression |
| Fixed : Decoder corruption error (#173) |
| Fixed : null-string roundtrip (#176) |
| New : benchmark mode can select directory as input |
| Experimental : midipix support, VMS support |
| |
| v0.6.0 |
| Stronger high compression modes, thanks to Przemyslaw Skibinski |
| API : ZSTD_getFrameParams() provides size of decompressed content |
| New : highest compression modes require `--ultra` command to fully unleash their capacity |
| Fixed : zstd cli return error code > 0 and removes dst file artifact when decompression fails, thanks to Chip Turner |
| |
| v0.5.1 |
| New : Optimal parsing => Very high compression modes, thanks to Przemyslaw Skibinski |
| Changed : Dictionary builder integrated into libzstd and zstd cli |
| Changed (!) : zstd cli now uses "multiple input files" as default mode. See `zstd -h`. |
| Fix : high compression modes for big-endian platforms |
| New : zstd cli : `-t` | `--test` command |
| |
| v0.5.0 |
| New : dictionary builder utility |
| Changed : streaming & dictionary API |
| Improved : better compression of small data |
| |
| v0.4.7 |
| Improved : small compression speed improvement in HC mode |
| Changed : `zstd_decompress.c` has ZSTD_LEGACY_SUPPORT to 0 by default |
| fix : bt search bug |
| |
| v0.4.6 |
| fix : fast compression mode on Windows |
| New : cmake configuration file, thanks to Artyom Dymchenko |
| Improved : high compression mode on repetitive data |
| New : block-level API |
| New : ZSTD_duplicateCCtx() |
| |
| v0.4.5 |
| new : -m/--multiple : compress/decompress multiple files |
| |
| v0.4.4 |
| Fixed : high compression modes for Windows 32 bits |
| new : external dictionary API extended to buffered mode and accessible through command line |
| new : windows DLL project, thanks to Christophe Chevalier |
| |
| v0.4.3 : |
| new : external dictionary API |
| new : zstd-frugal |
| |
| v0.4.2 : |
| Generic minor improvements for small blocks |
| Fixed : big-endian compatibility, by Peter Harris (#85) |
| |
| v0.4.1 |
| Fixed : ZSTD_LEGACY_SUPPORT=0 build mode (reported by Luben) |
| removed `zstd.c` |
| |
| v0.4.0 |
| Command line utility compatible with high compression levels |
| Removed zstdhc => merged into zstd |
| Added : ZBUFF API (see zstd_buffered.h) |
| Rolling buffer support |
| |
| v0.3.6 |
| small blocks params |
| |
| v0.3.5 |
| minor generic compression improvements |
| |
| v0.3.4 |
| Faster fast cLevels |
| |
| v0.3.3 |
| Small compression ratio improvement |
| |
| v0.3.2 |
| Fixed Visual Studio |
| |
| v0.3.1 : |
| Small compression ratio improvement |
| |
| v0.3 |
| HC mode : compression levels 2-26 |
| |
| v0.2.2 |
| Fix : Visual Studio 2013 & 2015 release compilation, by Christophe Chevalier |
| |
| v0.2.1 |
| Fix : Read errors, advanced fuzzer tests, by Hanno Böck |
| |
| v0.2.0 |
| **Breaking format change** |
| Faster decompression speed |
| Can still decode v0.1 format |
| |
| v0.1.3 |
| fix uninitialization warning, reported by Evan Nemerson |
| |
| v0.1.2 |
| frame concatenation support |
| |
| v0.1.1 |
| fix compression bug |
| detects write-flush errors |
| |
| v0.1.0 |
| first release |