NEWS 17 KB

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