extzstd 0.0.3.CONCEPT → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. checksums.yaml +5 -5
  2. data/HISTORY.ja.md +39 -0
  3. data/LICENSE +6 -6
  4. data/README.md +26 -45
  5. data/contrib/zstd/CHANGELOG +555 -0
  6. data/contrib/zstd/CODE_OF_CONDUCT.md +5 -0
  7. data/contrib/zstd/CONTRIBUTING.md +392 -0
  8. data/contrib/zstd/COPYING +339 -0
  9. data/contrib/zstd/LICENSE +13 -9
  10. data/contrib/zstd/Makefile +414 -0
  11. data/contrib/zstd/README.md +170 -45
  12. data/contrib/zstd/TESTING.md +44 -0
  13. data/contrib/zstd/appveyor.yml +289 -0
  14. data/contrib/zstd/lib/BUCK +234 -0
  15. data/contrib/zstd/lib/Makefile +354 -0
  16. data/contrib/zstd/lib/README.md +179 -0
  17. data/contrib/zstd/{common → lib/common}/bitstream.h +170 -130
  18. data/contrib/zstd/lib/common/compiler.h +175 -0
  19. data/contrib/zstd/lib/common/cpu.h +215 -0
  20. data/contrib/zstd/lib/common/debug.c +24 -0
  21. data/contrib/zstd/lib/common/debug.h +114 -0
  22. data/contrib/zstd/{common → lib/common}/entropy_common.c +79 -94
  23. data/contrib/zstd/lib/common/error_private.c +55 -0
  24. data/contrib/zstd/lib/common/error_private.h +80 -0
  25. data/contrib/zstd/{common → lib/common}/fse.h +153 -93
  26. data/contrib/zstd/{common → lib/common}/fse_decompress.c +37 -82
  27. data/contrib/zstd/lib/common/huf.h +340 -0
  28. data/contrib/zstd/{common → lib/common}/mem.h +154 -78
  29. data/contrib/zstd/lib/common/pool.c +344 -0
  30. data/contrib/zstd/lib/common/pool.h +84 -0
  31. data/contrib/zstd/lib/common/threading.c +121 -0
  32. data/contrib/zstd/lib/common/threading.h +155 -0
  33. data/contrib/zstd/{common → lib/common}/xxhash.c +85 -75
  34. data/contrib/zstd/{common → lib/common}/xxhash.h +85 -73
  35. data/contrib/zstd/lib/common/zstd_common.c +83 -0
  36. data/contrib/zstd/lib/common/zstd_errors.h +94 -0
  37. data/contrib/zstd/lib/common/zstd_internal.h +447 -0
  38. data/contrib/zstd/{compress → lib/compress}/fse_compress.c +194 -303
  39. data/contrib/zstd/lib/compress/hist.c +183 -0
  40. data/contrib/zstd/lib/compress/hist.h +75 -0
  41. data/contrib/zstd/lib/compress/huf_compress.c +798 -0
  42. data/contrib/zstd/lib/compress/zstd_compress.c +4278 -0
  43. data/contrib/zstd/lib/compress/zstd_compress_internal.h +1125 -0
  44. data/contrib/zstd/lib/compress/zstd_compress_literals.c +158 -0
  45. data/contrib/zstd/lib/compress/zstd_compress_literals.h +29 -0
  46. data/contrib/zstd/lib/compress/zstd_compress_sequences.c +419 -0
  47. data/contrib/zstd/lib/compress/zstd_compress_sequences.h +54 -0
  48. data/contrib/zstd/lib/compress/zstd_compress_superblock.c +845 -0
  49. data/contrib/zstd/lib/compress/zstd_compress_superblock.h +32 -0
  50. data/contrib/zstd/lib/compress/zstd_cwksp.h +525 -0
  51. data/contrib/zstd/lib/compress/zstd_double_fast.c +521 -0
  52. data/contrib/zstd/lib/compress/zstd_double_fast.h +38 -0
  53. data/contrib/zstd/lib/compress/zstd_fast.c +496 -0
  54. data/contrib/zstd/lib/compress/zstd_fast.h +37 -0
  55. data/contrib/zstd/lib/compress/zstd_lazy.c +1138 -0
  56. data/contrib/zstd/lib/compress/zstd_lazy.h +67 -0
  57. data/contrib/zstd/lib/compress/zstd_ldm.c +619 -0
  58. data/contrib/zstd/lib/compress/zstd_ldm.h +110 -0
  59. data/contrib/zstd/lib/compress/zstd_opt.c +1200 -0
  60. data/contrib/zstd/lib/compress/zstd_opt.h +56 -0
  61. data/contrib/zstd/lib/compress/zstdmt_compress.c +2143 -0
  62. data/contrib/zstd/lib/compress/zstdmt_compress.h +192 -0
  63. data/contrib/zstd/lib/decompress/huf_decompress.c +1248 -0
  64. data/contrib/zstd/lib/decompress/zstd_ddict.c +244 -0
  65. data/contrib/zstd/lib/decompress/zstd_ddict.h +44 -0
  66. data/contrib/zstd/lib/decompress/zstd_decompress.c +1885 -0
  67. data/contrib/zstd/lib/decompress/zstd_decompress_block.c +1432 -0
  68. data/contrib/zstd/lib/decompress/zstd_decompress_block.h +59 -0
  69. data/contrib/zstd/lib/decompress/zstd_decompress_internal.h +189 -0
  70. data/contrib/zstd/{common → lib/deprecated}/zbuff.h +86 -69
  71. data/contrib/zstd/lib/deprecated/zbuff_common.c +26 -0
  72. data/contrib/zstd/lib/deprecated/zbuff_compress.c +147 -0
  73. data/contrib/zstd/lib/deprecated/zbuff_decompress.c +75 -0
  74. data/contrib/zstd/lib/dictBuilder/cover.c +1236 -0
  75. data/contrib/zstd/lib/dictBuilder/cover.h +157 -0
  76. data/contrib/zstd/{dictBuilder → lib/dictBuilder}/divsufsort.c +3 -3
  77. data/contrib/zstd/{dictBuilder → lib/dictBuilder}/divsufsort.h +5 -5
  78. data/contrib/zstd/lib/dictBuilder/fastcover.c +757 -0
  79. data/contrib/zstd/{dictBuilder → lib/dictBuilder}/zdict.c +437 -347
  80. data/contrib/zstd/lib/dictBuilder/zdict.h +305 -0
  81. data/contrib/zstd/lib/legacy/zstd_legacy.h +415 -0
  82. data/contrib/zstd/{legacy → lib/legacy}/zstd_v01.c +272 -292
  83. data/contrib/zstd/{legacy → lib/legacy}/zstd_v01.h +26 -32
  84. data/contrib/zstd/{legacy → lib/legacy}/zstd_v02.c +162 -392
  85. data/contrib/zstd/{legacy → lib/legacy}/zstd_v02.h +26 -32
  86. data/contrib/zstd/{legacy → lib/legacy}/zstd_v03.c +162 -391
  87. data/contrib/zstd/{legacy → lib/legacy}/zstd_v03.h +27 -33
  88. data/contrib/zstd/{legacy → lib/legacy}/zstd_v04.c +195 -604
  89. data/contrib/zstd/{legacy → lib/legacy}/zstd_v04.h +26 -32
  90. data/contrib/zstd/{legacy → lib/legacy}/zstd_v05.c +300 -575
  91. data/contrib/zstd/{legacy → lib/legacy}/zstd_v05.h +22 -31
  92. data/contrib/zstd/{legacy → lib/legacy}/zstd_v06.c +165 -592
  93. data/contrib/zstd/{legacy → lib/legacy}/zstd_v06.h +54 -67
  94. data/contrib/zstd/lib/legacy/zstd_v07.c +4541 -0
  95. data/contrib/zstd/lib/legacy/zstd_v07.h +187 -0
  96. data/contrib/zstd/lib/libzstd.pc.in +15 -0
  97. data/contrib/zstd/lib/zstd.h +2090 -0
  98. data/ext/depend +2 -0
  99. data/ext/extconf.rb +18 -5
  100. data/ext/extzstd.c +296 -214
  101. data/ext/extzstd.h +81 -36
  102. data/ext/extzstd_nogvls.h +0 -117
  103. data/ext/extzstd_stream.c +622 -0
  104. data/ext/libzstd_conf.h +8 -0
  105. data/ext/zstd_common.c +11 -0
  106. data/ext/zstd_compress.c +15 -0
  107. data/ext/zstd_decompress.c +6 -0
  108. data/ext/zstd_dictbuilder.c +10 -0
  109. data/ext/zstd_dictbuilder_fastcover.c +3 -0
  110. data/ext/zstd_legacy_v01.c +3 -1
  111. data/ext/zstd_legacy_v02.c +3 -1
  112. data/ext/zstd_legacy_v03.c +3 -1
  113. data/ext/zstd_legacy_v04.c +3 -1
  114. data/ext/zstd_legacy_v05.c +3 -1
  115. data/ext/zstd_legacy_v06.c +3 -1
  116. data/ext/zstd_legacy_v07.c +3 -0
  117. data/gemstub.rb +27 -21
  118. data/lib/extzstd.rb +82 -161
  119. data/lib/extzstd/version.rb +1 -1
  120. data/test/test_basic.rb +19 -6
  121. metadata +127 -59
  122. data/contrib/zstd/common/error_private.h +0 -125
  123. data/contrib/zstd/common/error_public.h +0 -77
  124. data/contrib/zstd/common/huf.h +0 -228
  125. data/contrib/zstd/common/zstd.h +0 -475
  126. data/contrib/zstd/common/zstd_common.c +0 -91
  127. data/contrib/zstd/common/zstd_internal.h +0 -238
  128. data/contrib/zstd/compress/huf_compress.c +0 -577
  129. data/contrib/zstd/compress/zbuff_compress.c +0 -327
  130. data/contrib/zstd/compress/zstd_compress.c +0 -3074
  131. data/contrib/zstd/compress/zstd_opt.h +0 -1046
  132. data/contrib/zstd/decompress/huf_decompress.c +0 -894
  133. data/contrib/zstd/decompress/zbuff_decompress.c +0 -294
  134. data/contrib/zstd/decompress/zstd_decompress.c +0 -1362
  135. data/contrib/zstd/dictBuilder/zdict.h +0 -113
  136. data/contrib/zstd/legacy/zstd_legacy.h +0 -140
  137. data/ext/extzstd_buffered.c +0 -265
  138. data/ext/zstd_amalgam.c +0 -18
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 2fe6b36e5eb4cffa0d077511dcbd70d869d499f1
4
- data.tar.gz: 9acfaccd4a530eff2581bb407a2d221a1926e3e1
2
+ SHA256:
3
+ metadata.gz: 3f61d75e29eb86642f72138584ffc02ff36e86318dc48c07dbb176fc26f72b9c
4
+ data.tar.gz: 539f64336ce50da00e14e3920545a3f27842febe3ce8ec47387b408110fc1149
5
5
  SHA512:
6
- metadata.gz: 23b1a8f69661f30443e2eeb0207dc4260b760e2cff9240fcc8e7f4f89656d12f3302f983c9101a4f5fb786304e61d854fa83f36199640a082950a292b6eeb47f
7
- data.tar.gz: 0c666f160c2d2a53c52327bbc1e482152f712c11eaff45ae6e472467c84f6a8be96d2e716d5034cc9bf3ce32491ff4f045c96b897458f45653e9f99b5c68a1bc
6
+ metadata.gz: 52279e275616d6d179464deda78ff289abc07b42ebf7f111c79b89d6bc0ba9092290494aaefb7b9631fb3ed37d7fcd60e3f337d691a8990b36155541442fad65
7
+ data.tar.gz: 0d46cccb64f150ecf3b29459bc55b0aecfa1b43dcaa68c46f60c1a863d1827edb71acbfb4491ee777acde3bf68bdd8faf841c83cd00863172a2943689b36e482
@@ -0,0 +1,39 @@
1
+ # extzstd の更新履歴
2
+
3
+ ## extzstd-0.3.1 (令和2年10月3日 土曜日)
4
+
5
+ * zstd-1.4.5 への更新
6
+ * ruby-2.7 が警告するキーワード引数に関して修正
7
+ * ".so" ファイルの読み込みに `require` を使う
8
+ 参照: [extlz4#2](https://github.com/dearblue/ruby-extlz4/issues/2)
9
+
10
+
11
+ ## extzstd-0.3 (平成31年4月)
12
+
13
+ * zstd-1.4.0 への更新
14
+ * Zstd::Encoder#write に文字列以外を与えた場合でも文字列に変換するようにして受け入れるように修正
15
+ * Zstd::Decoder#read の buf 引数として nil を与えた場合例外が発生していたため修正
16
+ * zstd に関する例外が発生する時、例外オブジェクトの生成に失敗していたため修正
17
+ * Zstd::EncodeParameter.new に新しいキーワード引数を追加
18
+ * Zstd::Encoder に #close と #pos メソッドを追加
19
+ * `.to_zstd` / `.unzstd` メソッドを `Zstd` リファインメントとして追加
20
+ * `encode` の別名として `compress` を追加
21
+ * `decode` の別名として `decompress` / `uncompress` を追加
22
+
23
+
24
+ ## extzstd-0.2 (平成30年2月1日 木曜日)
25
+
26
+ * zstd-1.3.3 への更新
27
+ * 細分化されていた例外クラスを Zstd::Error クラスへ集約
28
+ * Zstd::StreamEncoder クラスを Zstd::Encoder クラスへ集約
29
+ * Zstd::StreamDecoder クラスを Zstd::Decoder クラスへ集約
30
+
31
+
32
+ ## extzstd-0.1.1 (平成29年3月28日 火曜日)
33
+
34
+ * zstd-1.1.4 への更新
35
+
36
+
37
+ ## extzstd-0.1 (平成28年11月2日 (水曜日))
38
+
39
+ 初版
data/LICENSE CHANGED
@@ -4,12 +4,12 @@ Redistribution and use in source and binary forms, with or
4
4
  without modification, are permitted provided that the following
5
5
  conditions are met:
6
6
 
7
- 1. Redistributions of source code must retain the above copyright
8
- notice, this list of conditions and the following disclaimer.
9
- 2. Redistributions in binary form must reproduce the above copyright
10
- notice, this list of conditions and the following disclaimer in
11
- the documentation and/or other materials provided with the
12
- distribution.
7
+ 1. Redistributions of source code must retain the above copyright
8
+ notice, this list of conditions and the following disclaimer.
9
+ 2. Redistributions in binary form must reproduce the above copyright
10
+ notice, this list of conditions and the following disclaimer in
11
+ the documentation and/or other materials provided with the
12
+ distribution.
13
13
 
14
14
  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
15
15
  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
data/README.md CHANGED
@@ -1,55 +1,19 @@
1
1
  # extzstd - ruby bindings for Zstd (Zstandard)
2
2
 
3
- This is unofficial ruby bindings for compression library
4
- [Zstd (https://github.com/Cyan4973/zstd)](https://github.com/Cyan4973/zstd).
3
+ This is unofficial ruby bindings for the data compression library
4
+ [Zstd (Zstandard)](https://github.com/facebook/zstd).
5
5
 
6
- * package name: extzstd
7
- * version: 0.0.3.CONCEPT
8
- * software quality: EXPERIMENTAL
9
- * license: 2-clause BSD License
10
- * author: dearblue <mailto:dearblue@users.osdn.me>
11
- * report issue to: <https://osdn.jp/projects/rutsubo/ticket/>
12
- * dependency ruby: ruby-2.0+
13
- * dependency ruby gems: (none)
14
- * dependency library: (none)
15
- * bundled external C library:
16
- * zstd-0.7.4 <https://github.com/Cyan4973/zstd/tree/v0.7.4>
17
-
18
- "extzstd" is supported the legacy formats (zstd-0.1 - 0.6).
19
-
20
-
21
- ## Quick API Reference
22
-
23
- * Encode
24
- * ``Zstd.encode(buf, params = nil, dict = nil) -> encoded string``
25
- * ``Zstd.encode(outport, params = nil, dict = nil) -> an instance of Zstd::Encoder``
26
- * ``Zstd.encode(outport, params = nil, dict = nil) { |encoder| ... } -> block returned value``
27
- * ``Zstd::Encoder#write(buf) -> this instance``
28
- * ``Zstd::Encoder#close -> nil``
29
-
30
- * Decode
31
- * ``Zstd.decode(zstd_buf, dict = nil) -> decoded string``
32
- * ``Zstd.decode(inport, dict = nil) -> an intance of Zstd::Decoder``
33
- * ``Zstd.decode(inport, dict = nil) { |decoder| ... } -> block returned value``
34
- * ``Zstd::Decoder#read(size = nil, buf = nil) -> buf``
35
- * ``Zstd::Decoder#close -> nil``
6
+ "extzstd" is supported decompression with the legacy formats (zstd-0.1 - 0.7).
36
7
 
37
- * buffered encoder
38
- * ``Zstd::BufferedEncoder.new(params, dict)`` (``ZBUFF_createCCtx``, ``ZBUFF_compressInit_advanced``)
39
- * ``Zstd::BufferedEncoder#continue(data, dataoff, dest, maxdest) -> integer as new data offset`` (``ZBUFF_compressContinue``)
40
- * ``Zstd::BufferedEncoder#flush(dest, maxdest) -> dest`` (``ZBUFF_compressFlush``)
41
- * ``Zstd::BufferedEncoder#end(dest, maxdest) -> dest`` (``ZBUFF_compressEnd``)
42
-
43
- * Train dictionary
44
- * ``Zstd.dict_train_from_buffer(buf, dict_capacity) -> dictionary'd string`` (``ZDICT_trainFromBuffer``)
45
- * ``Zstd.dict_add_entropy_tables_from_buffer(dict, dict_capacity, sample) -> dict`` (``ZDICT_addEntropyTablesFromBuffer``)
8
+ * [HISTORY (in Japanese)](HISTORY.ja.md)
9
+ * [Quick reference](QUICKREF.md)
46
10
 
47
11
 
48
12
  ## HOW TO USE
49
13
 
50
14
  ### basic usage (simply encode/decode)
51
15
 
52
- ``` ruby:ruby
16
+ ``` ruby
53
17
  # First, load library
54
18
  require "extzstd"
55
19
 
@@ -70,7 +34,7 @@ p source == decdata # => true
70
34
 
71
35
  ### Streaming compression (with block)
72
36
 
73
- ``` ruby:ruby
37
+ ``` ruby
74
38
  outport = StringIO.new("")
75
39
  Zstd.encode(outport) do |encoder|
76
40
  encoder.write "abcdefg\n"
@@ -82,7 +46,7 @@ end
82
46
 
83
47
  ### Streaming compression (without block and write to file)
84
48
 
85
- ``` ruby:ruby
49
+ ``` ruby
86
50
  file = File.open("sample.zst", "wb")
87
51
  encoder = Zstd.encode(file)
88
52
 
@@ -97,7 +61,7 @@ file.close
97
61
 
98
62
  ### Streaming decompression (with block and read from file)
99
63
 
100
- ``` ruby:ruby
64
+ ``` ruby
101
65
  File.open("sample.zst", "rb") do |file|
102
66
  Zstd.decode(file) do |decoder|
103
67
  p decoder.read(8) # => "abcdefg\n"
@@ -107,3 +71,20 @@ File.open("sample.zst", "rb") do |file|
107
71
  end
108
72
  end
109
73
  ```
74
+
75
+
76
+ ## Specification
77
+
78
+ * package name: extzstd
79
+ * version: 0.3.1
80
+ * product quality: TECHNICAL PREVIEW, UNSTABLE
81
+ * license: [BSD-2-clause License](LICENSE)
82
+ * author: dearblue <mailto:dearblue@users.noreply.github.com>
83
+ * project page: <https://github.com/dearblue/ruby-extzstd>
84
+ * support ruby: ruby-2.4+
85
+ * dependency ruby gems: (none)
86
+ * dependency library: (none)
87
+ * bundled external C library (git submodules):
88
+ * [zstd-1.4.0](https://github.com/facebook/zstd)
89
+ under selectable dual licensed ([BSD-3-clause License](https://github.com/facebook/zstd/blob/v1.4.0/LICENSE) and [GNU General Public License, version 2](https://github.com/facebook/zstd/blob/v1.4.0/COPYING))
90
+ by [facebook](https://github.com/facebook)
@@ -0,0 +1,555 @@
1
+ v1.4.5
2
+ fix : Compression ratio regression on huge files (> 3 GB) using high levels (--ultra) and multithreading, by @terrelln
3
+ perf: Improved decompression speed: x64 : +10% (clang) / +5% (gcc); ARM : from +15% to +50%, depending on SoC, by @terrelln
4
+ perf: Automatically downsizes ZSTD_DCtx when too large for too long (#2069, by @bimbashreshta)
5
+ perf: Improved fast compression speed on aarch64 (#2040, ~+3%, by @caoyzh)
6
+ perf: Small level 1 compression speed gains (depending on compiler)
7
+ cli : New --patch-from command, create and apply patches from files, by @bimbashreshta
8
+ cli : New --filelist= : Provide a list of files to operate upon from a file
9
+ cli : -b -d command can now benchmark decompression on multiple files
10
+ cli : New --no-content-size command
11
+ cli : New --show-default-cparams information command
12
+ api : ZDICT_finalizeDictionary() is promoted to stable (#2111)
13
+ api : new experimental parameter ZSTD_d_stableOutBuffer (#2094)
14
+ build: Generate a single-file libzstd library (#2065, by @cwoffenden)
15
+ build: Relative includes no longer require -I compiler flags for zstd lib subdirs (#2103, by @felixhandte)
16
+ build: zstd now compiles cleanly under -pedantic (#2099)
17
+ build: zstd now compiles with make-4.3
18
+ build: Support mingw cross-compilation from Linux, by @Ericson2314
19
+ build: Meson multi-thread build fix on windows
20
+ build: Some misc icc fixes backed by new ci test on travis
21
+ misc: bitflip analyzer tool, by @felixhandte
22
+ misc: Extend largeNbDicts benchmark to compression
23
+ misc: Edit-distance match finder in contrib/
24
+ doc : Improved beginner CONTRIBUTING.md docs
25
+ doc : New issue templates for zstd
26
+
27
+ v1.4.4
28
+ perf: Improved decompression speed, by > 10%, by @terrelln
29
+ perf: Better compression speed when re-using a context, by @felixhandte
30
+ perf: Fix compression ratio when compressing large files with small dictionary, by @senhuang42
31
+ perf: zstd reference encoder can generate RLE blocks, by @bimbashrestha
32
+ perf: minor generic speed optimization, by @davidbolvansky
33
+ api: new ability to extract sequences from the parser for analysis, by @bimbashrestha
34
+ api: fixed decoding of magic-less frames, by @terrelln
35
+ api: fixed ZSTD_initCStream_advanced() performance with fast modes, reported by @QrczakMK
36
+ cli: Named pipes support, by @bimbashrestha
37
+ cli: short tar's extension support, by @stokito
38
+ cli: command --output-dir-flat= , generates target files into requested directory, by @senhuang42
39
+ cli: commands --stream-size=# and --size-hint=#, by @nmagerko
40
+ cli: command --exclude-compressed, by @shashank0791
41
+ cli: faster `-t` test mode
42
+ cli: improved some error messages, by @vangyzen
43
+ cli: fix command `-D dictionary` on Windows, reported by @artyompetrov
44
+ cli: fix rare deadlock condition within dictionary builder, by @terrelln
45
+ build: single-file decoder with emscripten compilation script, by @cwoffenden
46
+ build: fixed zlibWrapper compilation on Visual Studio, reported by @bluenlive
47
+ build: fixed deprecation warning for certain gcc version, reported by @jasonma163
48
+ build: fix compilation on old gcc versions, by @cemeyer
49
+ build: improved installation directories for cmake script, by Dmitri Shubin
50
+ pack: modified pkgconfig, for better integration into openwrt, requested by @neheb
51
+ misc: Improved documentation : ZSTD_CLEVEL, DYNAMIC_BMI2, ZSTD_CDict, function deprecation, zstd format
52
+ misc: fixed educational decoder : accept larger literals section, and removed UNALIGNED() macro
53
+
54
+ v1.4.3
55
+ bug: Fix Dictionary Compression Ratio Regression by @cyan4973 (#1709)
56
+ bug: Fix Buffer Overflow in legacy v0.3 decompression by @felixhandte (#1722)
57
+ build: Add support for IAR C/C++ Compiler for Arm by @joseph0918 (#1705)
58
+
59
+ v1.4.2
60
+ bug: Fix bug in zstd-0.5 decoder by @terrelln (#1696)
61
+ bug: Fix seekable decompression in-memory API by @iburinoc (#1695)
62
+ misc: Validate blocks are smaller than size limit by @vivekmg (#1685)
63
+ misc: Restructure source files by @ephiepark (#1679)
64
+
65
+ v1.4.1
66
+ bug: Fix data corruption in niche use cases by @terrelln (#1659)
67
+ bug: Fuzz legacy modes, fix uncovered bugs by @terrelln (#1593, #1594, #1595)
68
+ bug: Fix out of bounds read by @terrelln (#1590)
69
+ perf: Improve decode speed by ~7% @mgrice (#1668)
70
+ perf: Slightly improved compression ratio of level 3 and 4 (ZSTD_dfast) by @cyan4973 (#1681)
71
+ perf: Slightly faster compression speed when re-using a context by @cyan4973 (#1658)
72
+ perf: Improve compression ratio for small windowLog by @cyan4973 (#1624)
73
+ perf: Faster compression speed in high compression mode for repetitive data by @terrelln (#1635)
74
+ api: Add parameter to generate smaller dictionaries by @tyler-tran (#1656)
75
+ cli: Recognize symlinks when built in C99 mode by @felixhandte (#1640)
76
+ cli: Expose cpu load indicator for each file on -vv mode by @ephiepark (#1631)
77
+ cli: Restrict read permissions on destination files by @chungy (#1644)
78
+ cli: zstdgrep: handle -f flag by @felixhandte (#1618)
79
+ cli: zstdcat: follow symlinks by @vejnar (#1604)
80
+ doc: Remove extra size limit on compressed blocks by @felixhandte (#1689)
81
+ doc: Fix typo by @yk-tanigawa (#1633)
82
+ doc: Improve documentation on streaming buffer sizes by @cyan4973 (#1629)
83
+ build: CMake: support building with LZ4 @leeyoung624 (#1626)
84
+ build: CMake: install zstdless and zstdgrep by @leeyoung624 (#1647)
85
+ build: CMake: respect existing uninstall target by @j301scott (#1619)
86
+ build: Make: skip multithread tests when built without support by @michaelforney (#1620)
87
+ build: Make: Fix examples/ test target by @sjnam (#1603)
88
+ build: Meson: rename options out of deprecated namespace by @lzutao (#1665)
89
+ build: Meson: fix build by @lzutao (#1602)
90
+ build: Visual Studio: don't export symbols in static lib by @scharan (#1650)
91
+ build: Visual Studio: fix linking by @absotively (#1639)
92
+ build: Fix MinGW-W64 build by @myzhang1029 (#1600)
93
+ misc: Expand decodecorpus coverage by @ephiepark (#1664)
94
+
95
+ v1.4.0
96
+ perf: Improve level 1 compression speed in most scenarios by 6% by @gbtucker and @terrelln
97
+ api: Move the advanced API, including all functions in the staging section, to the stable section
98
+ api: Make ZSTD_e_flush and ZSTD_e_end block for maximum forward progress
99
+ api: Rename ZSTD_CCtxParam_getParameter to ZSTD_CCtxParams_getParameter
100
+ api: Rename ZSTD_CCtxParam_setParameter to ZSTD_CCtxParams_setParameter
101
+ api: Don't export ZSTDMT functions from the shared library by default
102
+ api: Require ZSTD_MULTITHREAD to be defined to use ZSTDMT
103
+ api: Add ZSTD_decompressBound() to provide an upper bound on decompressed size by @shakeelrao
104
+ api: Fix ZSTD_decompressDCtx() corner cases with a dictionary
105
+ api: Move ZSTD_getDictID_*() functions to the stable section
106
+ api: Add ZSTD_c_literalCompressionMode flag to enable or disable literal compression by @terrelln
107
+ api: Allow compression parameters to be set when a dictionary is used
108
+ api: Allow setting parameters before or after ZSTD_CCtx_loadDictionary() is called
109
+ api: Fix ZSTD_estimateCStreamSize_usingCCtxParams()
110
+ api: Setting ZSTD_d_maxWindowLog to 0 means use the default
111
+ cli: Ensure that a dictionary is not used to compress itself by @shakeelrao
112
+ cli: Add --[no-]compress-literals flag to enable or disable literal compression
113
+ doc: Update the examples to use the advanced API
114
+ doc: Explain how to transition from old streaming functions to the advanced API in the header
115
+ build: Improve the Windows release packages
116
+ build: Improve CMake build by @hjmjohnson
117
+ build: Build fixes for FreeBSD by @lwhsu
118
+ build: Remove redundant warnings by @thatsafunnyname
119
+ build: Fix tests on OpenBSD by @bket
120
+ build: Extend fuzzer build system to work with the new clang engine
121
+ build: CMake now creates the libzstd.so.1 symlink
122
+ build: Improve Menson build by @lzutao
123
+ misc: Fix symbolic link detection on FreeBSD
124
+ misc: Use physical core count for -T0 on FreeBSD by @cemeyer
125
+ misc: Fix zstd --list on truncated files by @kostmo
126
+ misc: Improve logging in debug mode by @felixhandte
127
+ misc: Add CirrusCI tests by @lwhsu
128
+ misc: Optimize dictionary memory usage in corner cases
129
+ misc: Improve the dictionary builder on small or homogeneous data
130
+ misc: Fix spelling across the repo by @jsoref
131
+
132
+ v1.3.8
133
+ perf: better decompression speed on large files (+7%) and cold dictionaries (+15%)
134
+ perf: slightly better compression ratio at high compression modes
135
+ api : finalized advanced API, last stage before "stable" status
136
+ api : new --rsyncable mode, by @terrelln
137
+ api : support decompression of empty frames into NULL (used to be an error) (#1385)
138
+ build: new set of macros to build a minimal size decoder, by @felixhandte
139
+ build: fix compilation on MIPS32, reported by @clbr (#1441)
140
+ build: fix compilation with multiple -arch flags, by @ryandesign
141
+ build: highly upgraded meson build, by @lzutao
142
+ build: improved buck support, by @obelisk
143
+ build: fix cmake script : can create debug build, by @pitrou
144
+ build: Makefile : grep works on both colored consoles and systems without color support
145
+ build: fixed zstd-pgo, by @bmwiedemann
146
+ cli : support ZSTD_CLEVEL environment variable, by @yijinfb (#1423)
147
+ cli : --no-progress flag, preserving final summary (#1371), by @terrelln
148
+ cli : ensure destination file is not source file (#1422)
149
+ cli : clearer error messages, especially when input file not present
150
+ doc : clarified zstd_compression_format.md, by @ulikunitz
151
+ misc: fixed zstdgrep, returns 1 on failure, by @lzutao
152
+ misc: NEWS renamed as CHANGELOG, in accordance with fboss
153
+
154
+ v1.3.7
155
+ perf: slightly better decompression speed on clang (depending on hardware target)
156
+ fix : performance of dictionary compression for small input < 4 KB at levels 9 and 10
157
+ build: no longer build backtrace by default in release mode; restrict further automatic mode
158
+ build: control backtrace support through build macro BACKTRACE
159
+ misc: added man pages for zstdless and zstdgrep, by @samrussell
160
+
161
+ v1.3.6
162
+ perf: much faster dictionary builder, by @jenniferliu
163
+ perf: faster dictionary compression on small data when using multiple contexts, by @felixhandte
164
+ perf: faster dictionary decompression when using a very large number of dictionaries simultaneously
165
+ cli : fix : does no longer overwrite destination when source does not exist (#1082)
166
+ cli : new command --adapt, for automatic compression level adaptation
167
+ api : fix : block api can be streamed with > 4 GB, reported by @catid
168
+ api : reduced ZSTD_DDict size by 2 KB
169
+ api : minimum negative compression level is defined, and can be queried using ZSTD_minCLevel().
170
+ build: support Haiku target, by @korli
171
+ build: Read Legacy format is limited to v0.5+ by default. Can be changed at compile time with macro ZSTD_LEGACY_SUPPORT.
172
+ doc : zstd_compression_format.md updated to match wording in IETF RFC 8478
173
+ misc: tests/paramgrill, a parameter optimizer, by @GeorgeLu97
174
+
175
+ v1.3.5
176
+ perf: much faster dictionary compression, by @felixhandte
177
+ perf: small quality improvement for dictionary generation, by @terrelln
178
+ perf: slightly improved high compression levels (notably level 19)
179
+ mem : automatic memory release for long duration contexts
180
+ cli : fix : overlapLog can be manually set
181
+ cli : fix : decoding invalid lz4 frames
182
+ api : fix : performance degradation for dictionary compression when using advanced API, by @terrelln
183
+ api : change : clarify ZSTD_CCtx_reset() vs ZSTD_CCtx_resetParameters(), by @terrelln
184
+ build: select custom libzstd scope through control macros, by @GeorgeLu97
185
+ build: OpenBSD patch, by @bket
186
+ build: make and make all are compatible with -j
187
+ doc : clarify zstd_compression_format.md, updated for IETF RFC process
188
+ misc: pzstd compatible with reproducible compilation, by @lamby
189
+
190
+ v1.3.4
191
+ perf: faster speed (especially decoding speed) on recent cpus (haswell+)
192
+ perf: much better performance associating --long with multi-threading, by @terrelln
193
+ perf: better compression at levels 13-15
194
+ cli : asynchronous compression by default, for faster experience (use --single-thread for former behavior)
195
+ cli : smoother status report in multi-threading mode
196
+ cli : added command --fast=#, for faster compression modes
197
+ cli : fix crash when not overwriting existing files, by Pádraig Brady (@pixelb)
198
+ api : `nbThreads` becomes `nbWorkers` : 1 triggers asynchronous mode
199
+ api : compression levels can be negative, for even more speed
200
+ api : ZSTD_getFrameProgression() : get precise progress status of ZSTDMT anytime
201
+ api : ZSTDMT can accept new compression parameters during compression
202
+ api : implemented all advanced dictionary decompression prototypes
203
+ build: improved meson recipe, by Shawn Landden (@shawnl)
204
+ build: VS2017 scripts, by @HaydnTrigg
205
+ misc: all /contrib projects fixed
206
+ misc: added /contrib/docker script by @gyscos
207
+
208
+ v1.3.3
209
+ perf: faster zstd_opt strategy (levels 16-19)
210
+ fix : bug #944 : multithreading with shared ditionary and large data, reported by @gsliepen
211
+ cli : fix : content size written in header by default
212
+ cli : fix : improved LZ4 format support, by @felixhandte
213
+ cli : new : hidden command `-S`, to benchmark multiple files while generating one result per file
214
+ api : fix : support large skippable frames, by @terrelln
215
+ api : fix : streaming interface was adding a useless 3-bytes null block to small frames
216
+ api : change : when setting `pledgedSrcSize`, use `ZSTD_CONTENTSIZE_UNKNOWN` macro value to mean "unknown"
217
+ build: fix : compilation under rhel6 and centos6, reported by @pixelb
218
+ build: added `check` target
219
+
220
+ v1.3.2
221
+ new : long range mode, using --long command, by Stella Lau (@stellamplau)
222
+ new : ability to generate and decode magicless frames (#591)
223
+ changed : maximum nb of threads reduced to 200, to avoid address space exhaustion in 32-bits mode
224
+ fix : multi-threading compression works with custom allocators
225
+ fix : ZSTD_sizeof_CStream() was over-evaluating memory usage
226
+ fix : a rare compression bug when compression generates very large distances and bunch of other conditions (only possible at --ultra -22)
227
+ fix : 32-bits build can now decode large offsets (levels 21+)
228
+ cli : added LZ4 frame support by default, by Felix Handte (@felixhandte)
229
+ cli : improved --list output
230
+ cli : new : can split input file for dictionary training, using command -B#
231
+ cli : new : clean operation artefact on Ctrl-C interruption
232
+ cli : fix : do not change /dev/null permissions when using command -t with root access, reported by @mike155 (#851)
233
+ cli : fix : write file size in header in multiple-files mode
234
+ api : added macro ZSTD_COMPRESSBOUND() for static allocation
235
+ api : experimental : new advanced decompression API
236
+ api : fix : sizeof_CCtx() used to over-estimate
237
+ build: fix : no-multithread variant compiles without pool.c dependency, reported by Mitchell Blank Jr (@mitchblank) (#819)
238
+ build: better compatibility with reproducible builds, by Bernhard M. Wiedemann (@bmwiedemann) (#818)
239
+ example : added streaming_memory_usage
240
+ license : changed /examples license to BSD + GPLv2
241
+ license : fix a few header files to reflect new license (#825)
242
+
243
+ v1.3.1
244
+ New license : BSD + GPLv2
245
+ perf: substantially decreased memory usage in Multi-threading mode, thanks to reports by Tino Reichardt (@mcmilk)
246
+ perf: Multi-threading supports up to 256 threads. Cap at 256 when more are requested (#760)
247
+ cli : improved and fixed --list command, by @ib (#772)
248
+ cli : command -vV to list supported formats, by @ib (#771)
249
+ build : fixed binary variants, reported by @svenha (#788)
250
+ build : fix Visual compilation for non x86/x64 targets, reported by Greg Slazinski (@GregSlazinski) (#718)
251
+ API exp : breaking change : ZSTD_getframeHeader() provides more information
252
+ API exp : breaking change : pinned down values of error codes
253
+ doc : fixed huffman example, by Ulrich Kunitz (@ulikunitz)
254
+ new : contrib/adaptive-compression, I/O driven compression strength, by Paul Cruz (@paulcruz74)
255
+ new : contrib/long_distance_matching, statistics by Stella Lau (@stellamplau)
256
+ updated : contrib/linux-kernel, by Nick Terrell (@terrelln)
257
+
258
+ v1.3.0
259
+ cli : new : `--list` command, by Paul Cruz
260
+ cli : changed : xz/lzma support enabled by default
261
+ cli : changed : `-t *` continue processing list after a decompression error
262
+ API : added : ZSTD_versionString()
263
+ API : promoted to stable status : ZSTD_getFrameContentSize(), by Sean Purcell
264
+ API exp : new advanced API : ZSTD_compress_generic(), ZSTD_CCtx_setParameter()
265
+ API exp : new : API for static or external allocation : ZSTD_initStatic?Ctx()
266
+ API exp : added : ZSTD_decompressBegin_usingDDict(), requested by Guy Riddle (#700)
267
+ API exp : clarified memory estimation / measurement functions.
268
+ API exp : changed : strongest strategy renamed ZSTD_btultra, fastest strategy ZSTD_fast set to 1
269
+ tools : decodecorpus can generate random dictionary-compressed samples, by Paul Cruz
270
+ new : contrib/seekable_format, demo and API, by Sean Purcell
271
+ changed : contrib/linux-kernel, updated version and license, by Nick Terrell
272
+
273
+ v1.2.0
274
+ cli : changed : Multithreading enabled by default (use target zstd-nomt or HAVE_THREAD=0 to disable)
275
+ cli : new : command -T0 means "detect and use nb of cores", by Sean Purcell
276
+ cli : new : zstdmt symlink hardwired to `zstd -T0`
277
+ cli : new : command --threads=# (#671)
278
+ cli : changed : cover dictionary builder by default, for improved quality, by Nick Terrell
279
+ cli : new : commands --train-cover and --train-legacy, to select dictionary algorithm and parameters
280
+ cli : experimental targets `zstd4` and `xzstd4`, with support for lz4 format, by Sean Purcell
281
+ cli : fix : does not output compressed data on console
282
+ cli : fix : ignore symbolic links unless --force specified,
283
+ API : breaking change : ZSTD_createCDict_advanced(), only use compressionParameters as argument
284
+ API : added : prototypes ZSTD_*_usingCDict_advanced(), for direct control over frameParameters.
285
+ API : improved: ZSTDMT_compressCCtx() reduced memory usage
286
+ API : fix : ZSTDMT_compressCCtx() now provides srcSize in header (#634)
287
+ API : fix : src size stored in frame header is controlled at end of frame
288
+ API : fix : enforced consistent rules for pledgedSrcSize==0 (#641)
289
+ API : fix : error code "GENERIC" replaced by "dstSizeTooSmall" when appropriate
290
+ build: improved cmake script, by @Majlen
291
+ build: enabled Multi-threading support for *BSD, by Baptiste Daroussin
292
+ tools: updated Paramgrill. Command -O# provides best parameters for sample and speed target.
293
+ new : contrib/linux-kernel version, by Nick Terrell
294
+
295
+ v1.1.4
296
+ cli : new : can compress in *.gz format, using --format=gzip command, by Przemyslaw Skibinski
297
+ cli : new : advanced benchmark command --priority=rt
298
+ cli : fix : write on sparse-enabled file systems in 32-bits mode, by @ds77
299
+ cli : fix : --rm remains silent when input is stdin
300
+ cli : experimental : xzstd, with support for xz/lzma decoding, by Przemyslaw Skibinski
301
+ speed : improved decompression speed in streaming mode for single shot scenarios (+5%)
302
+ memory: DDict (decompression dictionary) memory usage down from 150 KB to 20 KB
303
+ arch: 32-bits variant able to generate and decode very long matches (>32 MB), by Sean Purcell
304
+ API : new : ZSTD_findFrameCompressedSize(), ZSTD_getFrameContentSize(), ZSTD_findDecompressedSize()
305
+ API : changed : dropped support of legacy versions <= v0.3 (can be changed by modifying ZSTD_LEGACY_SUPPORT value)
306
+ build : new: meson build system in contrib/meson, by Dima Krasner
307
+ build : improved cmake script, by @Majlen
308
+ build : added -Wformat-security flag, as recommended by Padraig Brady
309
+ doc : new : educational decoder, by Sean Purcell
310
+
311
+ v1.1.3
312
+ cli : zstd can decompress .gz files (can be disabled with `make zstd-nogz` or `make HAVE_ZLIB=0`)
313
+ cli : new : experimental target `make zstdmt`, with multi-threading support
314
+ cli : new : improved dictionary builder "cover" (experimental), by Nick Terrell, based on prior work by Giuseppe Ottaviano.
315
+ cli : new : advanced commands for detailed parameters, by Przemyslaw Skibinski
316
+ cli : fix zstdless on Mac OS-X, by Andrew Janke
317
+ cli : fix #232 "compress non-files"
318
+ dictBuilder : improved dictionary generation quality, thanks to Nick Terrell
319
+ API : new : lib/compress/ZSTDMT_compress.h multithreading API (experimental)
320
+ API : new : ZSTD_create?Dict_byReference(), requested by Bartosz Taudul
321
+ API : new : ZDICT_finalizeDictionary()
322
+ API : fix : ZSTD_initCStream_usingCDict() properly writes dictID into frame header, by Gregory Szorc (#511)
323
+ API : fix : all symbols properly exposed in libzstd, by Nick Terrell
324
+ build : support for Solaris target, by Przemyslaw Skibinski
325
+ doc : clarified specification, by Sean Purcell
326
+
327
+ v1.1.2
328
+ API : streaming : decompression : changed : automatic implicit reset when chain-decoding new frames without init
329
+ API : experimental : added : dictID retrieval functions, and ZSTD_initCStream_srcSize()
330
+ API : zbuff : changed : prototypes now generate deprecation warnings
331
+ lib : improved : faster decompression speed at ultra compression settings and 32-bits mode
332
+ lib : changed : only public ZSTD_ symbols are now exposed
333
+ lib : changed : reduced usage of stack memory
334
+ lib : fixed : several corner case bugs, by Nick Terrell
335
+ cli : new : gzstd, experimental version able to decode .gz files, by Przemyslaw Skibinski
336
+ cli : new : preserve file attributes
337
+ cli : new : added zstdless and zstdgrep tools
338
+ cli : fixed : status displays total amount decoded, even for file consisting of multiple frames (like pzstd)
339
+ cli : fixed : zstdcat
340
+ zlib_wrapper : added support for gz* functions, by Przemyslaw Skibinski
341
+ install : better compatibility with FreeBSD, by Dimitry Andric
342
+ source tree : changed : zbuff source files moved to lib/deprecated
343
+
344
+ v1.1.1
345
+ New : command -M#, --memory=, --memlimit=, --memlimit-decompress= to limit allowed memory consumption
346
+ New : doc/zstd_manual.html, by Przemyslaw Skibinski
347
+ Improved : slightly better compression ratio at --ultra levels (>= 20)
348
+ Improved : better memory usage when using streaming compression API, thanks to @Rogier-5 report
349
+ Added : API : ZSTD_initCStream_usingCDict(), ZSTD_initDStream_usingDDict() (experimental section)
350
+ Added : example/multiple_streaming_compression.c
351
+ Changed : zstd_errors.h is now installed within /include (and replaces errors_public.h)
352
+ Updated man page
353
+ Fixed : zstd-small, zstd-compress and zstd-decompress compilation targets
354
+
355
+ v1.1.0
356
+ New : contrib/pzstd, parallel version of zstd, by Nick Terrell
357
+ added : NetBSD install target (#338)
358
+ Improved : speed for batches of small files
359
+ Improved : speed of zlib wrapper, by Przemyslaw Skibinski
360
+ Changed : libzstd on Windows supports legacy formats, by Christophe Chevalier
361
+ Fixed : CLI -d output to stdout by default when input is stdin (#322)
362
+ Fixed : CLI correctly detects console on Mac OS-X
363
+ Fixed : CLI supports recursive mode `-r` on Mac OS-X
364
+ Fixed : Legacy decoders use unified error codes, reported by benrg (#341), fixed by Przemyslaw Skibinski
365
+ Fixed : compatibility with OpenBSD, reported by Juan Francisco Cantero Hurtado (#319)
366
+ Fixed : compatibility with Hurd, by Przemyslaw Skibinski (#365)
367
+ Fixed : zstd-pgo, reported by octoploid (#329)
368
+
369
+ v1.0.0
370
+ Change Licensing, all project is now BSD, Copyright Facebook
371
+ Small decompression speed improvement
372
+ API : Streaming API supports legacy format
373
+ API : ZDICT_getDictID(), ZSTD_sizeof_{CCtx, DCtx, CStream, DStream}(), ZSTD_setDStreamParameter()
374
+ CLI supports legacy formats v0.4+
375
+ Fixed : compression fails on certain huge files, reported by Jesse McGrew
376
+ Enhanced documentation, by Przemyslaw Skibinski
377
+
378
+ v0.8.1
379
+ New streaming API
380
+ Changed : --ultra now enables levels beyond 19
381
+ Changed : -i# now selects benchmark time in second
382
+ Fixed : ZSTD_compress* can now compress > 4 GB in a single pass, reported by Nick Terrell
383
+ Fixed : speed regression on specific patterns (#272)
384
+ Fixed : support for Z_SYNC_FLUSH, by Dmitry Krot (#291)
385
+ Fixed : ICC compilation, by Przemyslaw Skibinski
386
+
387
+ v0.8.0
388
+ Improved : better speed on clang and gcc -O2, thanks to Eric Biggers
389
+ New : Build on FreeBSD and DragonFly, thanks to JrMarino
390
+ Changed : modified API : ZSTD_compressEnd()
391
+ Fixed : legacy mode with ZSTD_HEAPMODE=0, by Christopher Bergqvist
392
+ Fixed : premature end of frame when zero-sized raw block, reported by Eric Biggers
393
+ Fixed : large dictionaries (> 384 KB), reported by Ilona Papava
394
+ Fixed : checksum correctly checked in single-pass mode
395
+ Fixed : combined --test amd --rm, reported by Andreas M. Nilsson
396
+ Modified : minor compression level adaptations
397
+ Updated : compression format specification to v0.2.0
398
+ changed : zstd.h moved to /lib directory
399
+
400
+ v0.7.5
401
+ Transition version, supporting decoding of v0.8.x
402
+
403
+ v0.7.4
404
+ Added : homebrew for Mac, by Daniel Cade
405
+ Added : more examples
406
+ Fixed : segfault when using small dictionaries, reported by Felix Handte
407
+ Modified : default compression level for CLI is now 3
408
+ Updated : specification, to v0.1.1
409
+
410
+ v0.7.3
411
+ New : compression format specification
412
+ New : `--` separator, stating that all following arguments are file names. Suggested by Chip Turner.
413
+ New : `ZSTD_getDecompressedSize()`
414
+ New : OpenBSD target, by Juan Francisco Cantero Hurtado
415
+ New : `examples` directory
416
+ fixed : dictBuilder using HC levels, reported by Bartosz Taudul
417
+ fixed : legacy support from ZSTD_decompress_usingDDict(), reported by Felix Handte
418
+ fixed : multi-blocks decoding with intermediate uncompressed blocks, reported by Greg Slazinski
419
+ modified : removed "mem.h" and "error_public.h" dependencies from "zstd.h" (experimental section)
420
+ modified : legacy functions no longer need magic number
421
+
422
+ v0.7.2
423
+ fixed : ZSTD_decompressBlock() using multiple consecutive blocks. Reported by Greg Slazinski.
424
+ fixed : potential segfault on very large files (many gigabytes). Reported by Chip Turner.
425
+ fixed : CLI displays system error message when destination file cannot be created (#231). Reported by Chip Turner.
426
+
427
+ v0.7.1
428
+ fixed : ZBUFF_compressEnd() called multiple times with too small `dst` buffer, reported by Christophe Chevalier
429
+ fixed : dictBuilder fails if first sample is too small, reported by Руслан Ковалёв
430
+ fixed : corruption issue, reported by cj
431
+ modified : checksum enabled by default in command line mode
432
+
433
+ v0.7.0
434
+ New : Support for directory compression, using `-r`, thanks to Przemyslaw Skibinski
435
+ New : Command `--rm`, to remove source file after successful de/compression
436
+ New : Visual build scripts, by Christophe Chevalier
437
+ New : Support for Sparse File-systems (do not use space for zero-filled sectors)
438
+ New : Frame checksum support
439
+ New : Support pass-through mode (when using `-df`)
440
+ API : more efficient Dictionary API : `ZSTD_compress_usingCDict()`, `ZSTD_decompress_usingDDict()`
441
+ API : create dictionary files from custom content, by Giuseppe Ottaviano
442
+ API : support for custom malloc/free functions
443
+ New : controllable Dictionary ID
444
+ New : Support for skippable frames
445
+
446
+ v0.6.1
447
+ New : zlib wrapper API, thanks to Przemyslaw Skibinski
448
+ New : Ability to compile compressor / decompressor separately
449
+ Changed : new lib directory structure
450
+ Fixed : Legacy codec v0.5 compatible with dictionary decompression
451
+ Fixed : Decoder corruption error (#173)
452
+ Fixed : null-string roundtrip (#176)
453
+ New : benchmark mode can select directory as input
454
+ Experimental : midipix support, VMS support
455
+
456
+ v0.6.0
457
+ Stronger high compression modes, thanks to Przemyslaw Skibinski
458
+ API : ZSTD_getFrameParams() provides size of decompressed content
459
+ New : highest compression modes require `--ultra` command to fully unleash their capacity
460
+ Fixed : zstd cli return error code > 0 and removes dst file artifact when decompression fails, thanks to Chip Turner
461
+
462
+ v0.5.1
463
+ New : Optimal parsing => Very high compression modes, thanks to Przemyslaw Skibinski
464
+ Changed : Dictionary builder integrated into libzstd and zstd cli
465
+ Changed (!) : zstd cli now uses "multiple input files" as default mode. See `zstd -h`.
466
+ Fix : high compression modes for big-endian platforms
467
+ New : zstd cli : `-t` | `--test` command
468
+
469
+ v0.5.0
470
+ New : dictionary builder utility
471
+ Changed : streaming & dictionary API
472
+ Improved : better compression of small data
473
+
474
+ v0.4.7
475
+ Improved : small compression speed improvement in HC mode
476
+ Changed : `zstd_decompress.c` has ZSTD_LEGACY_SUPPORT to 0 by default
477
+ fix : bt search bug
478
+
479
+ v0.4.6
480
+ fix : fast compression mode on Windows
481
+ New : cmake configuration file, thanks to Artyom Dymchenko
482
+ Improved : high compression mode on repetitive data
483
+ New : block-level API
484
+ New : ZSTD_duplicateCCtx()
485
+
486
+ v0.4.5
487
+ new : -m/--multiple : compress/decompress multiple files
488
+
489
+ v0.4.4
490
+ Fixed : high compression modes for Windows 32 bits
491
+ new : external dictionary API extended to buffered mode and accessible through command line
492
+ new : windows DLL project, thanks to Christophe Chevalier
493
+
494
+ v0.4.3 :
495
+ new : external dictionary API
496
+ new : zstd-frugal
497
+
498
+ v0.4.2 :
499
+ Generic minor improvements for small blocks
500
+ Fixed : big-endian compatibility, by Peter Harris (#85)
501
+
502
+ v0.4.1
503
+ Fixed : ZSTD_LEGACY_SUPPORT=0 build mode (reported by Luben)
504
+ removed `zstd.c`
505
+
506
+ v0.4.0
507
+ Command line utility compatible with high compression levels
508
+ Removed zstdhc => merged into zstd
509
+ Added : ZBUFF API (see zstd_buffered.h)
510
+ Rolling buffer support
511
+
512
+ v0.3.6
513
+ small blocks params
514
+
515
+ v0.3.5
516
+ minor generic compression improvements
517
+
518
+ v0.3.4
519
+ Faster fast cLevels
520
+
521
+ v0.3.3
522
+ Small compression ratio improvement
523
+
524
+ v0.3.2
525
+ Fixed Visual Studio
526
+
527
+ v0.3.1 :
528
+ Small compression ratio improvement
529
+
530
+ v0.3
531
+ HC mode : compression levels 2-26
532
+
533
+ v0.2.2
534
+ Fix : Visual Studio 2013 & 2015 release compilation, by Christophe Chevalier
535
+
536
+ v0.2.1
537
+ Fix : Read errors, advanced fuzzer tests, by Hanno Böck
538
+
539
+ v0.2.0
540
+ **Breaking format change**
541
+ Faster decompression speed
542
+ Can still decode v0.1 format
543
+
544
+ v0.1.3
545
+ fix uninitialization warning, reported by Evan Nemerson
546
+
547
+ v0.1.2
548
+ frame concatenation support
549
+
550
+ v0.1.1
551
+ fix compression bug
552
+ detects write-flush errors
553
+
554
+ v0.1.0
555
+ first release