extzstd 0.0.2.CONCEPT → 0.0.3.CONCEPT

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 (68) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +72 -22
  3. data/Rakefile +73 -19
  4. data/contrib/zstd/README.md +68 -0
  5. data/contrib/zstd/common/bitstream.h +414 -0
  6. data/contrib/zstd/common/entropy_common.c +231 -0
  7. data/contrib/zstd/common/error_private.h +125 -0
  8. data/contrib/zstd/common/error_public.h +77 -0
  9. data/contrib/zstd/common/fse.h +628 -0
  10. data/contrib/zstd/common/fse_decompress.c +331 -0
  11. data/contrib/zstd/common/huf.h +228 -0
  12. data/contrib/zstd/common/mem.h +377 -0
  13. data/contrib/zstd/common/xxhash.c +854 -0
  14. data/contrib/zstd/common/xxhash.h +273 -0
  15. data/contrib/zstd/common/zbuff.h +197 -0
  16. data/contrib/zstd/common/zstd.h +475 -0
  17. data/contrib/zstd/common/zstd_common.c +91 -0
  18. data/contrib/zstd/common/zstd_internal.h +238 -0
  19. data/contrib/zstd/compress/fse_compress.c +807 -0
  20. data/contrib/zstd/compress/huf_compress.c +577 -0
  21. data/contrib/zstd/compress/zbuff_compress.c +327 -0
  22. data/contrib/zstd/compress/zstd_compress.c +3074 -0
  23. data/contrib/zstd/compress/zstd_opt.h +1046 -0
  24. data/contrib/zstd/decompress/huf_decompress.c +894 -0
  25. data/contrib/zstd/decompress/zbuff_decompress.c +294 -0
  26. data/contrib/zstd/decompress/zstd_decompress.c +1362 -0
  27. data/contrib/zstd/dictBuilder/divsufsort.c +1913 -0
  28. data/contrib/zstd/dictBuilder/divsufsort.h +67 -0
  29. data/contrib/zstd/dictBuilder/zdict.c +1045 -0
  30. data/contrib/zstd/dictBuilder/zdict.h +113 -0
  31. data/contrib/zstd/legacy/zstd_legacy.h +140 -0
  32. data/contrib/zstd/legacy/zstd_v01.c +2178 -0
  33. data/contrib/zstd/{zstd.h → legacy/zstd_v01.h} +46 -39
  34. data/contrib/zstd/legacy/zstd_v02.c +3748 -0
  35. data/contrib/zstd/legacy/zstd_v02.h +99 -0
  36. data/contrib/zstd/legacy/zstd_v03.c +3389 -0
  37. data/contrib/zstd/legacy/zstd_v03.h +99 -0
  38. data/contrib/zstd/legacy/zstd_v04.c +4056 -0
  39. data/contrib/zstd/legacy/zstd_v04.h +148 -0
  40. data/contrib/zstd/legacy/zstd_v05.c +4325 -0
  41. data/contrib/zstd/legacy/zstd_v05.h +171 -0
  42. data/contrib/zstd/legacy/zstd_v06.c +4581 -0
  43. data/contrib/zstd/legacy/zstd_v06.h +185 -0
  44. data/ext/extconf.rb +10 -12
  45. data/ext/extzstd.c +497 -144
  46. data/ext/extzstd.h +127 -22
  47. data/ext/extzstd_buffered.c +265 -0
  48. data/ext/extzstd_nogvls.h +174 -0
  49. data/ext/zstd_amalgam.c +18 -0
  50. data/ext/zstd_legacy_v01.c +1 -0
  51. data/ext/zstd_legacy_v02.c +1 -0
  52. data/ext/zstd_legacy_v03.c +1 -0
  53. data/ext/zstd_legacy_v04.c +1 -0
  54. data/ext/zstd_legacy_v05.c +1 -0
  55. data/ext/zstd_legacy_v06.c +1 -0
  56. data/gemstub.rb +17 -1
  57. data/lib/extzstd.rb +197 -77
  58. data/lib/extzstd/version.rb +1 -1
  59. data/test/test_basic.rb +41 -0
  60. metadata +70 -20
  61. data/contrib/zstd/Makefile +0 -115
  62. data/contrib/zstd/fse.c +0 -2466
  63. data/contrib/zstd/fse.h +0 -320
  64. data/contrib/zstd/fse_static.h +0 -282
  65. data/contrib/zstd/libzstd.pc.in +0 -14
  66. data/contrib/zstd/zstd.c +0 -1768
  67. data/contrib/zstd/zstd_static.h +0 -89
  68. data/ext/extzstd-stream.c +0 -398
@@ -0,0 +1,18 @@
1
+ #define ZSTD_LEGACY_SUPPORT 1
2
+ #define MEM_MODULE 1
3
+
4
+ #include "../contrib/zstd/compress/zbuff_compress.c"
5
+ #include "../contrib/zstd/compress/fse_compress.c"
6
+ #include "../contrib/zstd/compress/zstd_compress.c"
7
+ #include "../contrib/zstd/compress/huf_compress.c"
8
+ #include "../contrib/zstd/common/xxhash.c"
9
+ #include "../contrib/zstd/common/zstd_common.c"
10
+ #define FSE_abs FSE_abs__redef
11
+ #include "../contrib/zstd/common/entropy_common.c"
12
+ #include "../contrib/zstd/common/fse_decompress.c"
13
+ #include "../contrib/zstd/decompress/zstd_decompress.c"
14
+ #include "../contrib/zstd/decompress/huf_decompress.c"
15
+ #define ZBUFF_limitCopy ZBUFF_limitCopy__redef
16
+ #include "../contrib/zstd/decompress/zbuff_decompress.c"
17
+ #include "../contrib/zstd/dictBuilder/zdict.c"
18
+ #include "../contrib/zstd/dictBuilder/divsufsort.c"
@@ -0,0 +1 @@
1
+ #include "../contrib/zstd/legacy/zstd_v01.c"
@@ -0,0 +1 @@
1
+ #include "../contrib/zstd/legacy/zstd_v02.c"
@@ -0,0 +1 @@
1
+ #include "../contrib/zstd/legacy/zstd_v03.c"
@@ -0,0 +1 @@
1
+ #include "../contrib/zstd/legacy/zstd_v04.c"
@@ -0,0 +1 @@
1
+ #include "../contrib/zstd/legacy/zstd_v05.c"
@@ -0,0 +1 @@
1
+ #include "../contrib/zstd/legacy/zstd_v06.c"
data/gemstub.rb CHANGED
@@ -1,3 +1,19 @@
1
+
2
+ file "lib/extzstd/version.rb" => %w(README.md) do
3
+ reg = /^\s*\*\s+version:\s*(\d+(?:\.\w+)+)\s*$/i
4
+ unless File.read("README.md", mode: "rt") =~ reg
5
+ raise "``version'' is not defined or bad syntax in ``README.md''"
6
+ end
7
+
8
+ GEMSTUB.version = ver = String($1)
9
+
10
+ File.write "lib/extzstd/version.rb", <<-"EOS", mode: "wb"
11
+ module Zstd
12
+ VERSION = #{ver.inspect}
13
+ end
14
+ EOS
15
+ end
16
+
1
17
  require_relative "lib/extzstd/version"
2
18
 
3
19
  GEMSTUB = Gem::Specification.new do |s|
@@ -13,7 +29,7 @@ EOS
13
29
  s.email = "dearblue@users.osdn.me"
14
30
 
15
31
  s.required_ruby_version = ">= 2.0"
16
- s.add_development_dependency "rake", "~> 10.0"
32
+ s.add_development_dependency "rake"
17
33
  end
18
34
 
19
35
  EXTRA.concat(FileList["contrib/**/*"])
@@ -1,55 +1,138 @@
1
- #vim: set fileencoding:utf-8
1
+ #!ruby
2
2
 
3
- ver = RbConfig::CONFIG["ruby_version"].slice(/\d+\.\d+/)
3
+ ver = RUBY_VERSION.slice(/\d+\.\d+/)
4
4
  soname = File.basename(__FILE__, ".rb") << ".so"
5
- lib = File.join(File.dirname(__FILE__), ver, soname)
6
- if File.file?(lib)
7
- require_relative File.join(ver, soname)
8
- else
9
- require_relative soname
10
- end
5
+ require_relative File.join(ver, soname)
11
6
 
12
7
  require_relative "extzstd/version"
13
8
 
14
9
  require "stringio"
15
10
 
16
- if false
17
- def p(*args)
18
- sf = File.basename(caller(1, 1)[0])
19
- args.each do |mesg|
20
- $stderr.puts "#{sf}: #{mesg.inspect}\n"
11
+ #
12
+ # This is ruby bindings for zstd <https://github.com/Cyan4973/zstd> the compression library.
13
+ #
14
+ module Zstd
15
+ #
16
+ # call-seq:
17
+ # encode(src_string, level = nil, dict = nil) -> zstd string
18
+ # encode(src_string, encoder_params, dict = nil) -> zstd string
19
+ # encode(outport, level = nil, dict = nil) -> zstd encoder
20
+ # encode(outport, level = nil, dict = nil) { |encoder| ... } -> yield returned value
21
+ # encode(outport, encoder_params, dict = nil) -> zstd encoder
22
+ # encode(outport, encoder_params, dict = nil) { |encoder| ... } -> yield returned value
23
+ #
24
+ def self.encode(src, *args, &block)
25
+ if src.kind_of?(String)
26
+ dest = Aux::EMPTY_BUFFER.dup
27
+ return Encoder.open(dest, *args) { |e| e.write src; dest }
28
+ end
29
+
30
+ Encoder.open(src, *args, &block)
21
31
  end
22
- return *args
23
- end
24
- end
25
32
 
26
- module Zstd
27
- module Aux
28
- module_function
29
- def io_read(io, size, buf)
30
- raise Error, "encounted EOF (read error)" unless io.read(size, buf)
31
- raise Error, "read size too small (read error)" unless buf.bytesize == size
32
- buf
33
+ #
34
+ # call-seq:
35
+ # decode(zstd_string, maxsize = nil, dict = nil) -> string
36
+ # decode(zstd_stream, maxsize = nil, dict = nil) -> zstd decoder
37
+ # decode(zstd_stream, maxsize = nil, dict = nil) { |decoder| ... } -> yield returned value
38
+ #
39
+ def self.decode(src, maxsize = nil, dict = nil, &block)
40
+ if src.kind_of?(String)
41
+ maxsize &&= maxsize.to_i
42
+ return Decoder.open(src, dict) { |d| return d.read(maxsize) }
33
43
  end
44
+
45
+ Decoder.open(src, dict, &block)
34
46
  end
35
47
 
36
- class Decoder < Struct.new(:decoder, :import, :readbuf, :destbuf, :status)
37
- BLOCKSIZE = 1 << 18
38
- STATUS_TERMINATE = nil
39
- STATUS_BLOCK_APPROACH = 1
40
- STATUS_INBLOCK = 2
48
+ class Encoder < Struct.new(:encoder, :outport, :destbuf, :status)
49
+ #
50
+ # call-seq:
51
+ # open(outport, level = nil, dict = nil) -> zstd encoder
52
+ # open(outport, encoder_params, dict = nil) { |encoder| ... } -> yield returned value
53
+ #
54
+ def self.open(outport, *args)
55
+ e = new(outport, *args)
56
+
57
+ return e unless block_given?
58
+
59
+ begin
60
+ yield e
61
+ ensure
62
+ e.close rescue nil unless e.eof?
63
+ end
64
+ end
41
65
 
42
66
  #
43
67
  # call-seq:
44
- # open(import) -> decoder
45
- # open(import) { |decoder| ... } -> yield returned value
68
+ # initialize(outport, level = nil, dict = nil)
69
+ # initialize(outport, encoder_params, dict = nil)
70
+ #
71
+ # +outport+ need has +.<<+ method.
46
72
  #
47
- # [import]
73
+ def initialize(outport, params = nil, dict = nil)
74
+ encoder = BufferedEncoder.new(params, dict)
75
+ super encoder, outport, "".force_encoding(Encoding::BINARY), [true]
76
+ end
77
+
78
+ def eof
79
+ !status[0]
80
+ end
81
+
82
+ alias eof? eof
83
+
84
+ def close
85
+ return nil if eof?
86
+ encoder.end(destbuf, BufferedEncoder.recommended_outsize)
87
+ outport << destbuf
88
+ status[0] = false
89
+ nil
90
+ end
91
+
92
+ def write(buf)
93
+ raise IOError, "closed stream" if eof?
94
+
95
+ off = 0
96
+ rest = buf.bytesize
97
+ outsize = BufferedEncoder.recommended_outsize
98
+ while off && off < rest
99
+ off = encoder.continue(buf, off, destbuf, outsize)
100
+ outport << destbuf
101
+ end
102
+
103
+ self
104
+ end
105
+
106
+ alias << write
107
+
108
+ def flush
109
+ raise IOError, "closed stream" if eof?
110
+
111
+ off = 0
112
+ encoder.flush(destbuf, BufferedEncoder.recommended_outsize)
113
+ outport << destbuf
114
+
115
+ self
116
+ end
117
+ end
118
+
119
+ class Decoder < Struct.new(:decoder, :inport, :readbuf, :destbuf, :status)
120
+ STATUS_CLOSED = nil
121
+ STATUS_READY = 0
122
+ STATUS_INPORT_EOF = 1
123
+
124
+ #
125
+ # call-seq:
126
+ # open(inport, dict = nil) -> decoder
127
+ # open(inport, dict = nil) { |decoder| ... } -> yield returned value
128
+ #
129
+ # [inport]
48
130
  # String instance or +read+ method haved Object.
49
131
  #
50
- def self.open(import)
51
- import = StringIO.new(import) if import.kind_of?(String)
52
- dec = new(import)
132
+ def self.open(inport, dict = nil)
133
+ inport = StringIO.new(inport) if inport.kind_of?(String)
134
+
135
+ dec = new(inport, dict)
53
136
 
54
137
  return dec unless block_given?
55
138
 
@@ -60,21 +143,17 @@ module Zstd
60
143
  end
61
144
  end
62
145
 
63
- def initialize(import)
64
- raise Error, "require .read method - <%s:0x%08x>" % [import.class, import.object_id << 1] unless import.respond_to?(:read)
65
- super(LowLevelDecoder.new, import, "".b, "".b, STATUS_BLOCK_APPROACH)
66
-
67
- # read header
68
- Aux.io_read(import, decoder.next_srcsize, readbuf)
69
- decoder.decode(readbuf, "", 0)
146
+ def initialize(inport, dict = nil)
147
+ raise Error, "require .read method - <%s:0x%08x>" % [inport.class, inport.object_id << 1] unless inport.respond_to?(:read)
148
+ super(BufferedDecoder.new(dict), inport, StringIO.new(Aux::EMPTY_BUFFER.dup), StringIO.new(Aux::EMPTY_BUFFER.dup), STATUS_READY)
70
149
  end
71
150
 
72
151
  def close
73
152
  decoder.reset
74
- import.close rescue nil if import.respond_to?(:close)
153
+ inport.close rescue nil if inport.respond_to?(:close)
75
154
  readbuf.clear
76
- destbuf.clear
77
- self.status = STATUS_TERMINATE
155
+ #destbuf.clear
156
+ self.status = STATUS_CLOSED
78
157
  nil
79
158
  end
80
159
 
@@ -84,55 +163,96 @@ module Zstd
84
163
 
85
164
  alias eof? eof
86
165
 
87
- def read(size = nil, dest = "".b)
88
- dest.clear
89
- destenc = dest.encoding
90
- dest.force_encoding Encoding::BINARY
166
+ def read(size = nil, dest = Aux::EMPTY_BUFFER.dup)
167
+ dest ||= Aux::EMPTY_BUFFER.dup
168
+ Aux.change_binary(dest) do
169
+ #dest.clear
170
+ dest[0 .. -1] = Aux::EMPTY_BUFFER # keep allocated heap
91
171
 
92
- until size && size <= 0
93
- if destbuf.empty?
94
- unless fetch
95
- return nil if dest.empty?
96
- break
172
+ return dest if size == 0
173
+
174
+ d = Aux::EMPTY_BUFFER.dup
175
+ until size && size <= 0
176
+ if destbuf.eof?
177
+ break unless fetch
97
178
  end
98
- end
99
179
 
100
- d = destbuf.slice!(0, size || destbuf.bytesize)
101
- dest << d
180
+ destbuf.read(size, d)
181
+ dest << d
102
182
 
103
- size -= d.bytesize if size
183
+ size -= d.bytesize if size
184
+ end
104
185
  end
105
186
 
106
- dest
107
- ensure
108
- dest.force_encoding destenc rescue nil if destenc
187
+ if dest.empty?
188
+ nil
189
+ else
190
+ dest
191
+ end
109
192
  end
110
193
 
111
194
  private
112
195
  def fetch
113
- return nil if eof?
196
+ return nil if eof? || status == STATUS_INPORT_EOF
114
197
 
115
198
  while true
116
- if status == STATUS_INBLOCK
117
- s = decoder.next_srcsize
118
- if s > 0
119
- Aux.io_read(import, s, readbuf)
120
- return destbuf if decoder.decode(readbuf, destbuf, BLOCKSIZE)
121
- next
199
+ if readbuf.eof?
200
+ readbuf.string[0 .. -1] = Aux::EMPTY_BUFFER
201
+ readbuf.rewind
202
+ unless inport.read(BufferedDecoder.recommended_insize, readbuf.string)
203
+ self.status = STATUS_INPORT_EOF
204
+ return nil
122
205
  end
123
- self.status = STATUS_BLOCK_APPROACH
124
206
  end
125
207
 
126
- # status == STATUS_BLOCK_APPROACH
127
- s = decoder.next_srcsize
128
- if s == 0
129
- self.status = STATUS_TERMINATE
130
- return nil
131
- end
132
- Aux.io_read(import, s, readbuf)
133
- decoder.decode(readbuf, "", 0)
134
- self.status = STATUS_INBLOCK
208
+ off = decoder.continue(readbuf.string, readbuf.pos, destbuf.string, BufferedDecoder.recommended_outsize)
209
+ readbuf.pos = off if off
210
+ destbuf.rewind
211
+ return self if destbuf.size > 0
135
212
  end
136
213
  end
137
214
  end
215
+
216
+ class EncodeParameters
217
+ def inspect
218
+ "#<#{self.class} windowlog=#{windowlog}, chainlog=#{chainlog}, " \
219
+ "hashlog=#{hashlog}, searchlog=#{searchlog}, " \
220
+ "searchlength=#{searchlength}, strategy=#{strategy}>"
221
+ end
222
+
223
+ def pretty_print(q)
224
+ q.group(2, "#<#{self.class}") do
225
+ q.breakable " "
226
+ q.text "windowlog=#{windowlog},"
227
+ q.breakable " "
228
+ q.text "chainlog=#{chainlog},"
229
+ q.breakable " "
230
+ q.text "hashlog=#{hashlog},"
231
+ q.breakable " "
232
+ q.text "searchlog=#{searchlog},"
233
+ q.breakable " "
234
+ q.text "searchlength=#{searchlength},"
235
+ q.breakable " "
236
+ q.text "strategy=#{strategy}>"
237
+ end
238
+ end
239
+ end
240
+
241
+ module Aux
242
+ EMPTY_BUFFER = "".force_encoding(Encoding::BINARY).freeze
243
+
244
+ def self.io_read(io, size, buf)
245
+ raise Error, "encounted EOF (read error)" unless io.read(size, buf)
246
+ raise Error, "read size too small (read error)" unless buf.bytesize == size
247
+ buf
248
+ end
249
+
250
+ def self.change_binary(str)
251
+ e = str.encoding
252
+ str.force_encoding(Encoding::BINARY)
253
+ yield
254
+ ensure
255
+ str.force_encoding e rescue nil if e
256
+ end
257
+ end
138
258
  end
@@ -1,3 +1,3 @@
1
1
  module Zstd
2
- VERSION = "0.0.2.CONCEPT"
2
+ VERSION = "0.0.3.CONCEPT"
3
3
  end
@@ -0,0 +1,41 @@
1
+ #!ruby
2
+
3
+ require "test-unit"
4
+ require "extzstd"
5
+ require "digest"
6
+
7
+ class TestZstd < Test::Unit::TestCase
8
+ def test_encode_decode
9
+ src = "ABCDEFGabcdefg" * 50
10
+ assert_equal(src, Zstd.decode(Zstd.encode(src), src.bytesize))
11
+ #assert_raise(Zstd::Error) { Zstd.decode("", 1111) }
12
+ d1 = Zstd.encode(src)
13
+ assert_same(src.tainted?, Zstd.encode(src).tainted?)
14
+ src1 = src.dup
15
+ src1.taint
16
+ assert_same(src1.tainted?, Zstd.encode(src1).tainted?)
17
+ end
18
+
19
+ def test_huge
20
+ src = "ABCDEFGabcdefg" * 10000000
21
+ assert_equal(Digest::MD5.hexdigest(src), Digest::MD5.hexdigest(Zstd.decode(Zstd.encode(src))))
22
+ end
23
+
24
+ def test_huge_stream
25
+ src = "abcdefghijklmnopqrstuvwxyz" * 1000
26
+ md5a = Digest::MD5.new
27
+ d = StringIO.new("")
28
+ Zstd.encode(d) { |z| 1000.times { z << src; md5a.update src } }
29
+ d.pos = 0
30
+ md5b = Digest::MD5.new
31
+ Zstd.decode(d) { |z| buf = ""; while z.read(654321, buf); md5b.update buf; end }
32
+ assert_equal(md5a.hexdigest, md5b.hexdigest)
33
+ end
34
+
35
+ def test_dictionary
36
+ dictsrc = "0123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz" * 10
37
+ dict = Zstd.dict_train_from_buffer(dictsrc, 10000)
38
+ src = "ABCDEFGabcdefg" * 50
39
+ assert_equal(src, Zstd.decode(Zstd.encode(src, nil, dict), src.bytesize, dict))
40
+ end
41
+ end
metadata CHANGED
@@ -1,31 +1,32 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: extzstd
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2.CONCEPT
4
+ version: 0.0.3.CONCEPT
5
5
  platform: ruby
6
6
  authors:
7
7
  - dearblue
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-16 00:00:00.000000000 Z
11
+ date: 2016-07-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '10.0'
19
+ version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '10.0'
27
- description: |
28
- unoficial ruby bindings for Zstandard (zstd) <https://github.com/Cyan4973/zstd>.
26
+ version: '0'
27
+ description: 'unoficial ruby bindings for Zstandard (zstd) <https://github.com/Cyan4973/zstd>.
28
+
29
+ '
29
30
  email: dearblue@users.osdn.me
30
31
  executables: []
31
32
  extensions:
@@ -34,9 +35,18 @@ extra_rdoc_files:
34
35
  - LICENSE
35
36
  - README.md
36
37
  - contrib/zstd/LICENSE
37
- - ext/extzstd-stream.c
38
+ - contrib/zstd/README.md
38
39
  - ext/extzstd.c
39
40
  - ext/extzstd.h
41
+ - ext/extzstd_buffered.c
42
+ - ext/extzstd_nogvls.h
43
+ - ext/zstd_amalgam.c
44
+ - ext/zstd_legacy_v01.c
45
+ - ext/zstd_legacy_v02.c
46
+ - ext/zstd_legacy_v03.c
47
+ - ext/zstd_legacy_v04.c
48
+ - ext/zstd_legacy_v05.c
49
+ - ext/zstd_legacy_v06.c
40
50
  - lib/extzstd.rb
41
51
  - lib/extzstd/version.rb
42
52
  files:
@@ -44,21 +54,62 @@ files:
44
54
  - README.md
45
55
  - Rakefile
46
56
  - contrib/zstd/LICENSE
47
- - contrib/zstd/Makefile
48
- - contrib/zstd/fse.c
49
- - contrib/zstd/fse.h
50
- - contrib/zstd/fse_static.h
51
- - contrib/zstd/libzstd.pc.in
52
- - contrib/zstd/zstd.c
53
- - contrib/zstd/zstd.h
54
- - contrib/zstd/zstd_static.h
57
+ - contrib/zstd/README.md
58
+ - contrib/zstd/common/bitstream.h
59
+ - contrib/zstd/common/entropy_common.c
60
+ - contrib/zstd/common/error_private.h
61
+ - contrib/zstd/common/error_public.h
62
+ - contrib/zstd/common/fse.h
63
+ - contrib/zstd/common/fse_decompress.c
64
+ - contrib/zstd/common/huf.h
65
+ - contrib/zstd/common/mem.h
66
+ - contrib/zstd/common/xxhash.c
67
+ - contrib/zstd/common/xxhash.h
68
+ - contrib/zstd/common/zbuff.h
69
+ - contrib/zstd/common/zstd.h
70
+ - contrib/zstd/common/zstd_common.c
71
+ - contrib/zstd/common/zstd_internal.h
72
+ - contrib/zstd/compress/fse_compress.c
73
+ - contrib/zstd/compress/huf_compress.c
74
+ - contrib/zstd/compress/zbuff_compress.c
75
+ - contrib/zstd/compress/zstd_compress.c
76
+ - contrib/zstd/compress/zstd_opt.h
77
+ - contrib/zstd/decompress/huf_decompress.c
78
+ - contrib/zstd/decompress/zbuff_decompress.c
79
+ - contrib/zstd/decompress/zstd_decompress.c
80
+ - contrib/zstd/dictBuilder/divsufsort.c
81
+ - contrib/zstd/dictBuilder/divsufsort.h
82
+ - contrib/zstd/dictBuilder/zdict.c
83
+ - contrib/zstd/dictBuilder/zdict.h
84
+ - contrib/zstd/legacy/zstd_legacy.h
85
+ - contrib/zstd/legacy/zstd_v01.c
86
+ - contrib/zstd/legacy/zstd_v01.h
87
+ - contrib/zstd/legacy/zstd_v02.c
88
+ - contrib/zstd/legacy/zstd_v02.h
89
+ - contrib/zstd/legacy/zstd_v03.c
90
+ - contrib/zstd/legacy/zstd_v03.h
91
+ - contrib/zstd/legacy/zstd_v04.c
92
+ - contrib/zstd/legacy/zstd_v04.h
93
+ - contrib/zstd/legacy/zstd_v05.c
94
+ - contrib/zstd/legacy/zstd_v05.h
95
+ - contrib/zstd/legacy/zstd_v06.c
96
+ - contrib/zstd/legacy/zstd_v06.h
55
97
  - ext/extconf.rb
56
- - ext/extzstd-stream.c
57
98
  - ext/extzstd.c
58
99
  - ext/extzstd.h
100
+ - ext/extzstd_buffered.c
101
+ - ext/extzstd_nogvls.h
102
+ - ext/zstd_amalgam.c
103
+ - ext/zstd_legacy_v01.c
104
+ - ext/zstd_legacy_v02.c
105
+ - ext/zstd_legacy_v03.c
106
+ - ext/zstd_legacy_v04.c
107
+ - ext/zstd_legacy_v05.c
108
+ - ext/zstd_legacy_v06.c
59
109
  - gemstub.rb
60
110
  - lib/extzstd.rb
61
111
  - lib/extzstd/version.rb
112
+ - test/test_basic.rb
62
113
  homepage: https://osdn.jp/projects/rutsubo/
63
114
  licenses:
64
115
  - 2-clause BSD License
@@ -83,9 +134,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
83
134
  version: 1.3.1
84
135
  requirements: []
85
136
  rubyforge_project:
86
- rubygems_version: 2.4.8
137
+ rubygems_version: 2.6.4
87
138
  signing_key:
88
139
  specification_version: 4
89
140
  summary: ruby bindings for Zstandard (zstd)
90
141
  test_files: []
91
- has_rdoc: