extzstd 0.0.2.CONCEPT → 0.0.3.CONCEPT

Sign up to get free protection for your applications and to get access to all the features.
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: