extzstd 0.1 → 0.3.2

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