deflate-ruby 1.0.0 → 1.0.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.
- checksums.yaml +4 -4
- data/CLAUDE.md +95 -92
- data/LICENSE.txt +6 -6
- data/README.md +87 -65
- data/Rakefile +23 -0
- data/ext/deflate_ruby/{libdeflate/lib/x86/adler32_impl.h → adler32_impl.h} +8 -7
- data/ext/deflate_ruby/common_defs.h +748 -0
- data/ext/deflate_ruby/{libdeflate/lib/x86/cpu_features.c → cpu_features.c} +46 -16
- data/ext/deflate_ruby/{libdeflate/lib/x86/cpu_features.h → cpu_features.h} +2 -1
- data/ext/deflate_ruby/{libdeflate/lib/x86/crc32_impl.h → crc32_impl.h} +22 -23
- data/ext/deflate_ruby/{libdeflate/lib/crc32_multipliers.h → crc32_multipliers.h} +2 -4
- data/ext/deflate_ruby/{libdeflate/lib/x86/crc32_pclmul_template.h → crc32_pclmul_template.h} +23 -94
- data/ext/deflate_ruby/{libdeflate/lib/crc32_tables.h → crc32_tables.h} +1 -1
- data/ext/deflate_ruby/{libdeflate/lib/deflate_compress.c → deflate_compress.c} +59 -60
- data/ext/deflate_ruby/deflate_ruby.c +392 -218
- data/ext/deflate_ruby/deflate_ruby.h +6 -0
- data/ext/deflate_ruby/extconf.rb +35 -25
- data/ext/deflate_ruby/libdeflate/adler32.c +162 -0
- data/ext/deflate_ruby/libdeflate/{lib/arm → arm}/adler32_impl.h +14 -7
- data/ext/deflate_ruby/libdeflate/{lib/arm → arm}/crc32_impl.h +25 -31
- data/ext/deflate_ruby/libdeflate/arm/crc32_pmull_helpers.h +156 -0
- data/ext/deflate_ruby/libdeflate/arm/crc32_pmull_wide.h +226 -0
- data/ext/deflate_ruby/libdeflate/bt_matchfinder.h +342 -0
- data/ext/deflate_ruby/libdeflate/common_defs.h +2 -1
- data/ext/deflate_ruby/libdeflate/cpu_features_common.h +93 -0
- data/ext/deflate_ruby/libdeflate/crc32.c +262 -0
- data/ext/deflate_ruby/libdeflate/crc32_multipliers.h +375 -0
- data/ext/deflate_ruby/libdeflate/crc32_tables.h +587 -0
- data/ext/deflate_ruby/libdeflate/decompress_template.h +777 -0
- data/ext/deflate_ruby/libdeflate/deflate_compress.c +4128 -0
- data/ext/deflate_ruby/libdeflate/deflate_compress.h +15 -0
- data/ext/deflate_ruby/libdeflate/deflate_constants.h +56 -0
- data/ext/deflate_ruby/libdeflate/deflate_decompress.c +1208 -0
- data/ext/deflate_ruby/libdeflate/gzip_compress.c +90 -0
- data/ext/deflate_ruby/libdeflate/gzip_constants.h +45 -0
- data/ext/deflate_ruby/libdeflate/gzip_decompress.c +144 -0
- data/ext/deflate_ruby/libdeflate/hc_matchfinder.h +401 -0
- data/ext/deflate_ruby/libdeflate/ht_matchfinder.h +234 -0
- data/ext/deflate_ruby/libdeflate/lib_common.h +106 -0
- data/ext/deflate_ruby/libdeflate/libdeflate.h +2 -2
- data/ext/deflate_ruby/libdeflate/{lib/matchfinder_common.h → matchfinder_common.h} +3 -3
- data/ext/deflate_ruby/libdeflate/x86/adler32_impl.h +135 -0
- data/ext/deflate_ruby/libdeflate/x86/adler32_template.h +518 -0
- data/ext/deflate_ruby/libdeflate/x86/cpu_features.c +213 -0
- data/ext/deflate_ruby/libdeflate/x86/cpu_features.h +170 -0
- data/ext/deflate_ruby/libdeflate/x86/crc32_impl.h +159 -0
- data/ext/deflate_ruby/libdeflate/x86/crc32_pclmul_template.h +424 -0
- data/ext/deflate_ruby/libdeflate/x86/decompress_impl.h +57 -0
- data/ext/deflate_ruby/libdeflate.h +411 -0
- data/ext/deflate_ruby/matchfinder_common.h +224 -0
- data/ext/deflate_ruby/matchfinder_impl.h +122 -0
- data/ext/deflate_ruby/utils.c +141 -0
- data/ext/deflate_ruby/zlib_compress.c +82 -0
- data/ext/deflate_ruby/zlib_constants.h +21 -0
- data/ext/deflate_ruby/zlib_decompress.c +104 -0
- data/lib/deflate_ruby/version.rb +1 -1
- data/lib/deflate_ruby.rb +1 -63
- data/sig/deflate_ruby.rbs +4 -0
- data/test/test_deflate_ruby.rb +220 -0
- data/test/test_helper.rb +6 -0
- metadata +89 -144
- data/ext/deflate_ruby/libdeflate/CMakeLists.txt +0 -270
- data/ext/deflate_ruby/libdeflate/NEWS.md +0 -494
- data/ext/deflate_ruby/libdeflate/README.md +0 -228
- data/ext/deflate_ruby/libdeflate/libdeflate-config.cmake.in +0 -3
- data/ext/deflate_ruby/libdeflate/libdeflate.pc.in +0 -18
- data/ext/deflate_ruby/libdeflate/programs/CMakeLists.txt +0 -105
- data/ext/deflate_ruby/libdeflate/programs/benchmark.c +0 -696
- data/ext/deflate_ruby/libdeflate/programs/checksum.c +0 -218
- data/ext/deflate_ruby/libdeflate/programs/config.h.in +0 -19
- data/ext/deflate_ruby/libdeflate/programs/gzip.c +0 -688
- data/ext/deflate_ruby/libdeflate/programs/prog_util.c +0 -521
- data/ext/deflate_ruby/libdeflate/programs/prog_util.h +0 -225
- data/ext/deflate_ruby/libdeflate/programs/test_checksums.c +0 -200
- data/ext/deflate_ruby/libdeflate/programs/test_custom_malloc.c +0 -155
- data/ext/deflate_ruby/libdeflate/programs/test_incomplete_codes.c +0 -385
- data/ext/deflate_ruby/libdeflate/programs/test_invalid_streams.c +0 -130
- data/ext/deflate_ruby/libdeflate/programs/test_litrunlen_overflow.c +0 -72
- data/ext/deflate_ruby/libdeflate/programs/test_overread.c +0 -95
- data/ext/deflate_ruby/libdeflate/programs/test_slow_decompression.c +0 -472
- data/ext/deflate_ruby/libdeflate/programs/test_trailing_bytes.c +0 -151
- data/ext/deflate_ruby/libdeflate/programs/test_util.c +0 -237
- data/ext/deflate_ruby/libdeflate/programs/test_util.h +0 -61
- data/ext/deflate_ruby/libdeflate/programs/tgetopt.c +0 -118
- data/ext/deflate_ruby/libdeflate/scripts/android_build.sh +0 -118
- data/ext/deflate_ruby/libdeflate/scripts/android_tests.sh +0 -69
- data/ext/deflate_ruby/libdeflate/scripts/benchmark.sh +0 -10
- data/ext/deflate_ruby/libdeflate/scripts/checksum.sh +0 -10
- data/ext/deflate_ruby/libdeflate/scripts/checksum_benchmarks.sh +0 -253
- data/ext/deflate_ruby/libdeflate/scripts/cmake-helper.sh +0 -17
- data/ext/deflate_ruby/libdeflate/scripts/deflate_benchmarks.sh +0 -119
- data/ext/deflate_ruby/libdeflate/scripts/exec_tests.sh +0 -38
- data/ext/deflate_ruby/libdeflate/scripts/gen-release-archives.sh +0 -37
- data/ext/deflate_ruby/libdeflate/scripts/gen_bitreverse_tab.py +0 -19
- data/ext/deflate_ruby/libdeflate/scripts/gen_crc32_multipliers.c +0 -199
- data/ext/deflate_ruby/libdeflate/scripts/gen_crc32_tables.c +0 -105
- data/ext/deflate_ruby/libdeflate/scripts/gen_default_litlen_costs.py +0 -44
- data/ext/deflate_ruby/libdeflate/scripts/gen_offset_slot_map.py +0 -29
- data/ext/deflate_ruby/libdeflate/scripts/gzip_tests.sh +0 -523
- data/ext/deflate_ruby/libdeflate/scripts/libFuzzer/deflate_compress/corpus/0 +0 -0
- data/ext/deflate_ruby/libdeflate/scripts/libFuzzer/deflate_compress/fuzz.c +0 -95
- data/ext/deflate_ruby/libdeflate/scripts/libFuzzer/deflate_decompress/corpus/0 +0 -3
- data/ext/deflate_ruby/libdeflate/scripts/libFuzzer/deflate_decompress/fuzz.c +0 -62
- data/ext/deflate_ruby/libdeflate/scripts/libFuzzer/fuzz.sh +0 -108
- data/ext/deflate_ruby/libdeflate/scripts/libFuzzer/gzip_decompress/corpus/0 +0 -0
- data/ext/deflate_ruby/libdeflate/scripts/libFuzzer/gzip_decompress/fuzz.c +0 -19
- data/ext/deflate_ruby/libdeflate/scripts/libFuzzer/zlib_decompress/corpus/0 +0 -3
- data/ext/deflate_ruby/libdeflate/scripts/libFuzzer/zlib_decompress/fuzz.c +0 -19
- data/ext/deflate_ruby/libdeflate/scripts/run_tests.sh +0 -416
- data/ext/deflate_ruby/libdeflate/scripts/toolchain-i686-w64-mingw32.cmake +0 -8
- data/ext/deflate_ruby/libdeflate/scripts/toolchain-x86_64-w64-mingw32.cmake +0 -8
- /data/ext/deflate_ruby/{libdeflate/lib/adler32.c → adler32.c} +0 -0
- /data/ext/deflate_ruby/{libdeflate/lib/x86/adler32_template.h → adler32_template.h} +0 -0
- /data/ext/deflate_ruby/{libdeflate/lib/bt_matchfinder.h → bt_matchfinder.h} +0 -0
- /data/ext/deflate_ruby/{libdeflate/lib/cpu_features_common.h → cpu_features_common.h} +0 -0
- /data/ext/deflate_ruby/{libdeflate/lib/crc32.c → crc32.c} +0 -0
- /data/ext/deflate_ruby/{libdeflate/lib/arm/crc32_pmull_helpers.h → crc32_pmull_helpers.h} +0 -0
- /data/ext/deflate_ruby/{libdeflate/lib/arm/crc32_pmull_wide.h → crc32_pmull_wide.h} +0 -0
- /data/ext/deflate_ruby/{libdeflate/lib/x86/decompress_impl.h → decompress_impl.h} +0 -0
- /data/ext/deflate_ruby/{libdeflate/lib/decompress_template.h → decompress_template.h} +0 -0
- /data/ext/deflate_ruby/{libdeflate/lib/deflate_compress.h → deflate_compress.h} +0 -0
- /data/ext/deflate_ruby/{libdeflate/lib/deflate_constants.h → deflate_constants.h} +0 -0
- /data/ext/deflate_ruby/{libdeflate/lib/deflate_decompress.c → deflate_decompress.c} +0 -0
- /data/ext/deflate_ruby/{libdeflate/lib/gzip_compress.c → gzip_compress.c} +0 -0
- /data/ext/deflate_ruby/{libdeflate/lib/gzip_constants.h → gzip_constants.h} +0 -0
- /data/ext/deflate_ruby/{libdeflate/lib/gzip_decompress.c → gzip_decompress.c} +0 -0
- /data/ext/deflate_ruby/{libdeflate/lib/hc_matchfinder.h → hc_matchfinder.h} +0 -0
- /data/ext/deflate_ruby/{libdeflate/lib/ht_matchfinder.h → ht_matchfinder.h} +0 -0
- /data/ext/deflate_ruby/{libdeflate/lib/lib_common.h → lib_common.h} +0 -0
- /data/ext/deflate_ruby/libdeflate/{lib/arm → arm}/cpu_features.c +0 -0
- /data/ext/deflate_ruby/libdeflate/{lib/arm → arm}/cpu_features.h +0 -0
- /data/ext/deflate_ruby/libdeflate/{lib/arm → arm}/matchfinder_impl.h +0 -0
- /data/ext/deflate_ruby/libdeflate/{lib/riscv → riscv}/matchfinder_impl.h +0 -0
- /data/ext/deflate_ruby/libdeflate/{lib/utils.c → utils.c} +0 -0
- /data/ext/deflate_ruby/libdeflate/{lib/x86 → x86}/matchfinder_impl.h +0 -0
- /data/ext/deflate_ruby/libdeflate/{lib/zlib_compress.c → zlib_compress.c} +0 -0
- /data/ext/deflate_ruby/libdeflate/{lib/zlib_constants.h → zlib_constants.h} +0 -0
- /data/ext/deflate_ruby/libdeflate/{lib/zlib_decompress.c → zlib_decompress.c} +0 -0
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "test_helper"
|
|
4
|
+
|
|
5
|
+
class TestDeflateRuby < Minitest::Test
|
|
6
|
+
def test_that_it_has_a_version_number
|
|
7
|
+
refute_nil ::DeflateRuby::VERSION
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def test_compressor_creation
|
|
11
|
+
compressor = DeflateRuby::Compressor.new
|
|
12
|
+
refute_nil compressor
|
|
13
|
+
compressor.close
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def test_compressor_with_level
|
|
17
|
+
compressor = DeflateRuby::Compressor.new(level: 6)
|
|
18
|
+
refute_nil compressor
|
|
19
|
+
compressor.close
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def test_decompressor_creation
|
|
23
|
+
decompressor = DeflateRuby::Decompressor.new
|
|
24
|
+
refute_nil decompressor
|
|
25
|
+
decompressor.close
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def test_deflate_compress_and_decompress
|
|
29
|
+
data = "Hello, World! " * 100
|
|
30
|
+
|
|
31
|
+
compressor = DeflateRuby::Compressor.new
|
|
32
|
+
compressed = compressor.deflate_compress(data)
|
|
33
|
+
compressor.close
|
|
34
|
+
|
|
35
|
+
assert compressed.bytesize < data.bytesize
|
|
36
|
+
|
|
37
|
+
decompressor = DeflateRuby::Decompressor.new
|
|
38
|
+
decompressed = decompressor.deflate_decompress(compressed, data.bytesize)
|
|
39
|
+
decompressor.close
|
|
40
|
+
|
|
41
|
+
assert_equal data, decompressed
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def test_zlib_compress_and_decompress
|
|
45
|
+
data = "Testing zlib format" * 50
|
|
46
|
+
|
|
47
|
+
compressor = DeflateRuby::Compressor.new
|
|
48
|
+
compressed = compressor.zlib_compress(data)
|
|
49
|
+
compressor.close
|
|
50
|
+
|
|
51
|
+
assert compressed.bytesize < data.bytesize
|
|
52
|
+
|
|
53
|
+
decompressor = DeflateRuby::Decompressor.new
|
|
54
|
+
decompressed = decompressor.zlib_decompress(compressed, data.bytesize)
|
|
55
|
+
decompressor.close
|
|
56
|
+
|
|
57
|
+
assert_equal data, decompressed
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def test_gzip_compress_and_decompress
|
|
61
|
+
data = "Testing gzip format" * 50
|
|
62
|
+
|
|
63
|
+
compressor = DeflateRuby::Compressor.new
|
|
64
|
+
compressed = compressor.gzip_compress(data)
|
|
65
|
+
compressor.close
|
|
66
|
+
|
|
67
|
+
assert compressed.bytesize < data.bytesize
|
|
68
|
+
|
|
69
|
+
decompressor = DeflateRuby::Decompressor.new
|
|
70
|
+
decompressed = decompressor.gzip_decompress(compressed, data.bytesize)
|
|
71
|
+
decompressor.close
|
|
72
|
+
|
|
73
|
+
assert_equal data, decompressed
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
def test_deflate_compress_bound
|
|
77
|
+
data = "Test data" * 10
|
|
78
|
+
compressor = DeflateRuby::Compressor.new
|
|
79
|
+
bound = compressor.deflate_compress_bound(data.bytesize)
|
|
80
|
+
compressor.close
|
|
81
|
+
|
|
82
|
+
assert bound > 0
|
|
83
|
+
assert bound >= data.bytesize
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
def test_zlib_compress_bound
|
|
87
|
+
data = "Test data" * 10
|
|
88
|
+
compressor = DeflateRuby::Compressor.new
|
|
89
|
+
bound = compressor.zlib_compress_bound(data.bytesize)
|
|
90
|
+
compressor.close
|
|
91
|
+
|
|
92
|
+
assert bound > 0
|
|
93
|
+
assert bound >= data.bytesize
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
def test_gzip_compress_bound
|
|
97
|
+
data = "Test data" * 10
|
|
98
|
+
compressor = DeflateRuby::Compressor.new
|
|
99
|
+
bound = compressor.gzip_compress_bound(data.bytesize)
|
|
100
|
+
compressor.close
|
|
101
|
+
|
|
102
|
+
assert bound > 0
|
|
103
|
+
assert bound >= data.bytesize
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
def test_crc32
|
|
107
|
+
data = "Hello, World!"
|
|
108
|
+
crc = DeflateRuby.crc32(data)
|
|
109
|
+
assert crc.is_a?(Integer)
|
|
110
|
+
assert crc > 0
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
def test_crc32_with_initial_value
|
|
114
|
+
data = "Hello, World!"
|
|
115
|
+
crc1 = DeflateRuby.crc32("Hello, ")
|
|
116
|
+
crc2 = DeflateRuby.crc32("World!", crc1)
|
|
117
|
+
crc_full = DeflateRuby.crc32(data)
|
|
118
|
+
assert_equal crc_full, crc2
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
def test_adler32
|
|
122
|
+
data = "Hello, World!"
|
|
123
|
+
adler = DeflateRuby.adler32(data)
|
|
124
|
+
assert adler.is_a?(Integer)
|
|
125
|
+
assert adler > 0
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
def test_adler32_with_initial_value
|
|
129
|
+
data = "Hello, World!"
|
|
130
|
+
adler1 = DeflateRuby.adler32("Hello, ")
|
|
131
|
+
adler2 = DeflateRuby.adler32("World!", adler1)
|
|
132
|
+
adler_full = DeflateRuby.adler32(data)
|
|
133
|
+
assert_equal adler_full, adler2
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
def test_compression_levels
|
|
137
|
+
data = "Test compression levels" * 100
|
|
138
|
+
|
|
139
|
+
[0, 1, 6, 9, 12].each do |level|
|
|
140
|
+
compressor = DeflateRuby::Compressor.new(level: level)
|
|
141
|
+
compressed = compressor.deflate_compress(data)
|
|
142
|
+
compressor.close
|
|
143
|
+
|
|
144
|
+
assert compressed.bytesize > 0
|
|
145
|
+
|
|
146
|
+
decompressor = DeflateRuby::Decompressor.new
|
|
147
|
+
decompressed = decompressor.deflate_decompress(compressed, data.bytesize)
|
|
148
|
+
decompressor.close
|
|
149
|
+
|
|
150
|
+
assert_equal data, decompressed
|
|
151
|
+
end
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
def test_empty_data
|
|
155
|
+
data = ""
|
|
156
|
+
|
|
157
|
+
compressor = DeflateRuby::Compressor.new
|
|
158
|
+
compressed = compressor.deflate_compress(data)
|
|
159
|
+
compressor.close
|
|
160
|
+
|
|
161
|
+
decompressor = DeflateRuby::Decompressor.new
|
|
162
|
+
decompressed = decompressor.deflate_decompress(compressed, 0)
|
|
163
|
+
decompressor.close
|
|
164
|
+
|
|
165
|
+
assert_equal data, decompressed
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
def test_large_data
|
|
169
|
+
data = "A" * 1_000_000
|
|
170
|
+
|
|
171
|
+
compressor = DeflateRuby::Compressor.new
|
|
172
|
+
compressed = compressor.deflate_compress(data)
|
|
173
|
+
compressor.close
|
|
174
|
+
|
|
175
|
+
# Should compress very well for repeated data
|
|
176
|
+
assert compressed.bytesize < data.bytesize / 10
|
|
177
|
+
|
|
178
|
+
decompressor = DeflateRuby::Decompressor.new
|
|
179
|
+
decompressed = decompressor.deflate_decompress(compressed, data.bytesize)
|
|
180
|
+
decompressor.close
|
|
181
|
+
|
|
182
|
+
assert_equal data, decompressed
|
|
183
|
+
end
|
|
184
|
+
|
|
185
|
+
def test_binary_data
|
|
186
|
+
# Test with random binary data
|
|
187
|
+
data = Array.new(1000) { rand(256) }.pack("C*")
|
|
188
|
+
|
|
189
|
+
compressor = DeflateRuby::Compressor.new
|
|
190
|
+
compressed = compressor.zlib_compress(data)
|
|
191
|
+
compressor.close
|
|
192
|
+
|
|
193
|
+
decompressor = DeflateRuby::Decompressor.new
|
|
194
|
+
decompressed = decompressor.zlib_decompress(compressed, data.bytesize)
|
|
195
|
+
decompressor.close
|
|
196
|
+
|
|
197
|
+
assert_equal data, decompressed
|
|
198
|
+
end
|
|
199
|
+
|
|
200
|
+
def test_decompress_invalid_data
|
|
201
|
+
decompressor = DeflateRuby::Decompressor.new
|
|
202
|
+
|
|
203
|
+
assert_raises(DeflateRuby::DecompressionError) do
|
|
204
|
+
decompressor.deflate_decompress("not compressed data", 100)
|
|
205
|
+
end
|
|
206
|
+
|
|
207
|
+
decompressor.close
|
|
208
|
+
end
|
|
209
|
+
|
|
210
|
+
def test_auto_close_compressor
|
|
211
|
+
compressor = DeflateRuby::Compressor.new
|
|
212
|
+
compressor.deflate_compress("test")
|
|
213
|
+
# Should auto-close when garbage collected
|
|
214
|
+
end
|
|
215
|
+
|
|
216
|
+
def test_auto_close_decompressor
|
|
217
|
+
decompressor = DeflateRuby::Decompressor.new
|
|
218
|
+
# Should auto-close when garbage collected
|
|
219
|
+
end
|
|
220
|
+
end
|
data/test/test_helper.rb
ADDED
metadata
CHANGED
|
@@ -1,60 +1,18 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: deflate-ruby
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0.
|
|
4
|
+
version: 1.0.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- John Greninger
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2025-11-
|
|
12
|
-
dependencies:
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
requirements:
|
|
17
|
-
- - "~>"
|
|
18
|
-
- !ruby/object:Gem::Version
|
|
19
|
-
version: '5.0'
|
|
20
|
-
type: :development
|
|
21
|
-
prerelease: false
|
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
-
requirements:
|
|
24
|
-
- - "~>"
|
|
25
|
-
- !ruby/object:Gem::Version
|
|
26
|
-
version: '5.0'
|
|
27
|
-
- !ruby/object:Gem::Dependency
|
|
28
|
-
name: rake
|
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
|
30
|
-
requirements:
|
|
31
|
-
- - "~>"
|
|
32
|
-
- !ruby/object:Gem::Version
|
|
33
|
-
version: '13.0'
|
|
34
|
-
type: :development
|
|
35
|
-
prerelease: false
|
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
-
requirements:
|
|
38
|
-
- - "~>"
|
|
39
|
-
- !ruby/object:Gem::Version
|
|
40
|
-
version: '13.0'
|
|
41
|
-
- !ruby/object:Gem::Dependency
|
|
42
|
-
name: rake-compiler
|
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
|
44
|
-
requirements:
|
|
45
|
-
- - "~>"
|
|
46
|
-
- !ruby/object:Gem::Version
|
|
47
|
-
version: '1.2'
|
|
48
|
-
type: :development
|
|
49
|
-
prerelease: false
|
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
-
requirements:
|
|
52
|
-
- - "~>"
|
|
53
|
-
- !ruby/object:Gem::Version
|
|
54
|
-
version: '1.2'
|
|
55
|
-
description: Ruby bindings for libdeflate, providing fast DEFLATE, zlib, and gzip
|
|
56
|
-
compression/decompression. Significantly faster than Ruby's built-in Zlib for whole-buffer
|
|
57
|
-
operations. Includes libdeflate v1.21 source code with platform-specific optimizations.
|
|
11
|
+
date: 2025-11-03 00:00:00.000000000 Z
|
|
12
|
+
dependencies: []
|
|
13
|
+
description: DeflateRuby provides Ruby bindings for libdeflate, a heavily optimized
|
|
14
|
+
library for DEFLATE, gzip, and zlib compression and decompression. Significantly
|
|
15
|
+
faster than Ruby's built-in Zlib module.
|
|
58
16
|
email:
|
|
59
17
|
- jgreninger@hotmail.com
|
|
60
18
|
executables: []
|
|
@@ -65,110 +23,97 @@ files:
|
|
|
65
23
|
- CLAUDE.md
|
|
66
24
|
- LICENSE.txt
|
|
67
25
|
- README.md
|
|
26
|
+
- Rakefile
|
|
27
|
+
- ext/deflate_ruby/adler32.c
|
|
28
|
+
- ext/deflate_ruby/adler32_impl.h
|
|
29
|
+
- ext/deflate_ruby/adler32_template.h
|
|
30
|
+
- ext/deflate_ruby/bt_matchfinder.h
|
|
31
|
+
- ext/deflate_ruby/common_defs.h
|
|
32
|
+
- ext/deflate_ruby/cpu_features.c
|
|
33
|
+
- ext/deflate_ruby/cpu_features.h
|
|
34
|
+
- ext/deflate_ruby/cpu_features_common.h
|
|
35
|
+
- ext/deflate_ruby/crc32.c
|
|
36
|
+
- ext/deflate_ruby/crc32_impl.h
|
|
37
|
+
- ext/deflate_ruby/crc32_multipliers.h
|
|
38
|
+
- ext/deflate_ruby/crc32_pclmul_template.h
|
|
39
|
+
- ext/deflate_ruby/crc32_pmull_helpers.h
|
|
40
|
+
- ext/deflate_ruby/crc32_pmull_wide.h
|
|
41
|
+
- ext/deflate_ruby/crc32_tables.h
|
|
42
|
+
- ext/deflate_ruby/decompress_impl.h
|
|
43
|
+
- ext/deflate_ruby/decompress_template.h
|
|
44
|
+
- ext/deflate_ruby/deflate_compress.c
|
|
45
|
+
- ext/deflate_ruby/deflate_compress.h
|
|
46
|
+
- ext/deflate_ruby/deflate_constants.h
|
|
47
|
+
- ext/deflate_ruby/deflate_decompress.c
|
|
68
48
|
- ext/deflate_ruby/deflate_ruby.c
|
|
49
|
+
- ext/deflate_ruby/deflate_ruby.h
|
|
69
50
|
- ext/deflate_ruby/extconf.rb
|
|
70
|
-
- ext/deflate_ruby/
|
|
51
|
+
- ext/deflate_ruby/gzip_compress.c
|
|
52
|
+
- ext/deflate_ruby/gzip_constants.h
|
|
53
|
+
- ext/deflate_ruby/gzip_decompress.c
|
|
54
|
+
- ext/deflate_ruby/hc_matchfinder.h
|
|
55
|
+
- ext/deflate_ruby/ht_matchfinder.h
|
|
56
|
+
- ext/deflate_ruby/lib_common.h
|
|
57
|
+
- ext/deflate_ruby/libdeflate.h
|
|
71
58
|
- ext/deflate_ruby/libdeflate/COPYING
|
|
72
|
-
- ext/deflate_ruby/libdeflate/
|
|
73
|
-
- ext/deflate_ruby/libdeflate/
|
|
59
|
+
- ext/deflate_ruby/libdeflate/adler32.c
|
|
60
|
+
- ext/deflate_ruby/libdeflate/arm/adler32_impl.h
|
|
61
|
+
- ext/deflate_ruby/libdeflate/arm/cpu_features.c
|
|
62
|
+
- ext/deflate_ruby/libdeflate/arm/cpu_features.h
|
|
63
|
+
- ext/deflate_ruby/libdeflate/arm/crc32_impl.h
|
|
64
|
+
- ext/deflate_ruby/libdeflate/arm/crc32_pmull_helpers.h
|
|
65
|
+
- ext/deflate_ruby/libdeflate/arm/crc32_pmull_wide.h
|
|
66
|
+
- ext/deflate_ruby/libdeflate/arm/matchfinder_impl.h
|
|
67
|
+
- ext/deflate_ruby/libdeflate/bt_matchfinder.h
|
|
74
68
|
- ext/deflate_ruby/libdeflate/common_defs.h
|
|
75
|
-
- ext/deflate_ruby/libdeflate/
|
|
76
|
-
- ext/deflate_ruby/libdeflate/
|
|
77
|
-
- ext/deflate_ruby/libdeflate/
|
|
78
|
-
- ext/deflate_ruby/libdeflate/
|
|
79
|
-
- ext/deflate_ruby/libdeflate/
|
|
80
|
-
- ext/deflate_ruby/libdeflate/
|
|
81
|
-
- ext/deflate_ruby/libdeflate/
|
|
82
|
-
- ext/deflate_ruby/libdeflate/
|
|
83
|
-
- ext/deflate_ruby/libdeflate/
|
|
84
|
-
- ext/deflate_ruby/libdeflate/
|
|
85
|
-
- ext/deflate_ruby/libdeflate/
|
|
86
|
-
- ext/deflate_ruby/libdeflate/
|
|
87
|
-
- ext/deflate_ruby/libdeflate/
|
|
88
|
-
- ext/deflate_ruby/libdeflate/
|
|
89
|
-
- ext/deflate_ruby/libdeflate/
|
|
90
|
-
- ext/deflate_ruby/libdeflate/lib/deflate_compress.h
|
|
91
|
-
- ext/deflate_ruby/libdeflate/lib/deflate_constants.h
|
|
92
|
-
- ext/deflate_ruby/libdeflate/lib/deflate_decompress.c
|
|
93
|
-
- ext/deflate_ruby/libdeflate/lib/gzip_compress.c
|
|
94
|
-
- ext/deflate_ruby/libdeflate/lib/gzip_constants.h
|
|
95
|
-
- ext/deflate_ruby/libdeflate/lib/gzip_decompress.c
|
|
96
|
-
- ext/deflate_ruby/libdeflate/lib/hc_matchfinder.h
|
|
97
|
-
- ext/deflate_ruby/libdeflate/lib/ht_matchfinder.h
|
|
98
|
-
- ext/deflate_ruby/libdeflate/lib/lib_common.h
|
|
99
|
-
- ext/deflate_ruby/libdeflate/lib/matchfinder_common.h
|
|
100
|
-
- ext/deflate_ruby/libdeflate/lib/riscv/matchfinder_impl.h
|
|
101
|
-
- ext/deflate_ruby/libdeflate/lib/utils.c
|
|
102
|
-
- ext/deflate_ruby/libdeflate/lib/x86/adler32_impl.h
|
|
103
|
-
- ext/deflate_ruby/libdeflate/lib/x86/adler32_template.h
|
|
104
|
-
- ext/deflate_ruby/libdeflate/lib/x86/cpu_features.c
|
|
105
|
-
- ext/deflate_ruby/libdeflate/lib/x86/cpu_features.h
|
|
106
|
-
- ext/deflate_ruby/libdeflate/lib/x86/crc32_impl.h
|
|
107
|
-
- ext/deflate_ruby/libdeflate/lib/x86/crc32_pclmul_template.h
|
|
108
|
-
- ext/deflate_ruby/libdeflate/lib/x86/decompress_impl.h
|
|
109
|
-
- ext/deflate_ruby/libdeflate/lib/x86/matchfinder_impl.h
|
|
110
|
-
- ext/deflate_ruby/libdeflate/lib/zlib_compress.c
|
|
111
|
-
- ext/deflate_ruby/libdeflate/lib/zlib_constants.h
|
|
112
|
-
- ext/deflate_ruby/libdeflate/lib/zlib_decompress.c
|
|
113
|
-
- ext/deflate_ruby/libdeflate/libdeflate-config.cmake.in
|
|
69
|
+
- ext/deflate_ruby/libdeflate/cpu_features_common.h
|
|
70
|
+
- ext/deflate_ruby/libdeflate/crc32.c
|
|
71
|
+
- ext/deflate_ruby/libdeflate/crc32_multipliers.h
|
|
72
|
+
- ext/deflate_ruby/libdeflate/crc32_tables.h
|
|
73
|
+
- ext/deflate_ruby/libdeflate/decompress_template.h
|
|
74
|
+
- ext/deflate_ruby/libdeflate/deflate_compress.c
|
|
75
|
+
- ext/deflate_ruby/libdeflate/deflate_compress.h
|
|
76
|
+
- ext/deflate_ruby/libdeflate/deflate_constants.h
|
|
77
|
+
- ext/deflate_ruby/libdeflate/deflate_decompress.c
|
|
78
|
+
- ext/deflate_ruby/libdeflate/gzip_compress.c
|
|
79
|
+
- ext/deflate_ruby/libdeflate/gzip_constants.h
|
|
80
|
+
- ext/deflate_ruby/libdeflate/gzip_decompress.c
|
|
81
|
+
- ext/deflate_ruby/libdeflate/hc_matchfinder.h
|
|
82
|
+
- ext/deflate_ruby/libdeflate/ht_matchfinder.h
|
|
83
|
+
- ext/deflate_ruby/libdeflate/lib_common.h
|
|
114
84
|
- ext/deflate_ruby/libdeflate/libdeflate.h
|
|
115
|
-
- ext/deflate_ruby/libdeflate/
|
|
116
|
-
- ext/deflate_ruby/libdeflate/
|
|
117
|
-
- ext/deflate_ruby/libdeflate/
|
|
118
|
-
- ext/deflate_ruby/libdeflate/
|
|
119
|
-
- ext/deflate_ruby/libdeflate/
|
|
120
|
-
- ext/deflate_ruby/libdeflate/
|
|
121
|
-
- ext/deflate_ruby/libdeflate/
|
|
122
|
-
- ext/deflate_ruby/libdeflate/
|
|
123
|
-
- ext/deflate_ruby/libdeflate/
|
|
124
|
-
- ext/deflate_ruby/libdeflate/
|
|
125
|
-
- ext/deflate_ruby/libdeflate/
|
|
126
|
-
- ext/deflate_ruby/libdeflate/
|
|
127
|
-
- ext/deflate_ruby/libdeflate/
|
|
128
|
-
- ext/deflate_ruby/libdeflate/
|
|
129
|
-
- ext/deflate_ruby/
|
|
130
|
-
- ext/deflate_ruby/
|
|
131
|
-
- ext/deflate_ruby/
|
|
132
|
-
- ext/deflate_ruby/
|
|
133
|
-
- ext/deflate_ruby/
|
|
134
|
-
- ext/deflate_ruby/
|
|
135
|
-
- ext/deflate_ruby/libdeflate/scripts/android_tests.sh
|
|
136
|
-
- ext/deflate_ruby/libdeflate/scripts/benchmark.sh
|
|
137
|
-
- ext/deflate_ruby/libdeflate/scripts/checksum.sh
|
|
138
|
-
- ext/deflate_ruby/libdeflate/scripts/checksum_benchmarks.sh
|
|
139
|
-
- ext/deflate_ruby/libdeflate/scripts/cmake-helper.sh
|
|
140
|
-
- ext/deflate_ruby/libdeflate/scripts/deflate_benchmarks.sh
|
|
141
|
-
- ext/deflate_ruby/libdeflate/scripts/exec_tests.sh
|
|
142
|
-
- ext/deflate_ruby/libdeflate/scripts/gen-release-archives.sh
|
|
143
|
-
- ext/deflate_ruby/libdeflate/scripts/gen_bitreverse_tab.py
|
|
144
|
-
- ext/deflate_ruby/libdeflate/scripts/gen_crc32_multipliers.c
|
|
145
|
-
- ext/deflate_ruby/libdeflate/scripts/gen_crc32_tables.c
|
|
146
|
-
- ext/deflate_ruby/libdeflate/scripts/gen_default_litlen_costs.py
|
|
147
|
-
- ext/deflate_ruby/libdeflate/scripts/gen_offset_slot_map.py
|
|
148
|
-
- ext/deflate_ruby/libdeflate/scripts/gzip_tests.sh
|
|
149
|
-
- ext/deflate_ruby/libdeflate/scripts/libFuzzer/deflate_compress/corpus/0
|
|
150
|
-
- ext/deflate_ruby/libdeflate/scripts/libFuzzer/deflate_compress/fuzz.c
|
|
151
|
-
- ext/deflate_ruby/libdeflate/scripts/libFuzzer/deflate_decompress/corpus/0
|
|
152
|
-
- ext/deflate_ruby/libdeflate/scripts/libFuzzer/deflate_decompress/fuzz.c
|
|
153
|
-
- ext/deflate_ruby/libdeflate/scripts/libFuzzer/fuzz.sh
|
|
154
|
-
- ext/deflate_ruby/libdeflate/scripts/libFuzzer/gzip_decompress/corpus/0
|
|
155
|
-
- ext/deflate_ruby/libdeflate/scripts/libFuzzer/gzip_decompress/fuzz.c
|
|
156
|
-
- ext/deflate_ruby/libdeflate/scripts/libFuzzer/zlib_decompress/corpus/0
|
|
157
|
-
- ext/deflate_ruby/libdeflate/scripts/libFuzzer/zlib_decompress/fuzz.c
|
|
158
|
-
- ext/deflate_ruby/libdeflate/scripts/run_tests.sh
|
|
159
|
-
- ext/deflate_ruby/libdeflate/scripts/toolchain-i686-w64-mingw32.cmake
|
|
160
|
-
- ext/deflate_ruby/libdeflate/scripts/toolchain-x86_64-w64-mingw32.cmake
|
|
85
|
+
- ext/deflate_ruby/libdeflate/matchfinder_common.h
|
|
86
|
+
- ext/deflate_ruby/libdeflate/riscv/matchfinder_impl.h
|
|
87
|
+
- ext/deflate_ruby/libdeflate/utils.c
|
|
88
|
+
- ext/deflate_ruby/libdeflate/x86/adler32_impl.h
|
|
89
|
+
- ext/deflate_ruby/libdeflate/x86/adler32_template.h
|
|
90
|
+
- ext/deflate_ruby/libdeflate/x86/cpu_features.c
|
|
91
|
+
- ext/deflate_ruby/libdeflate/x86/cpu_features.h
|
|
92
|
+
- ext/deflate_ruby/libdeflate/x86/crc32_impl.h
|
|
93
|
+
- ext/deflate_ruby/libdeflate/x86/crc32_pclmul_template.h
|
|
94
|
+
- ext/deflate_ruby/libdeflate/x86/decompress_impl.h
|
|
95
|
+
- ext/deflate_ruby/libdeflate/x86/matchfinder_impl.h
|
|
96
|
+
- ext/deflate_ruby/libdeflate/zlib_compress.c
|
|
97
|
+
- ext/deflate_ruby/libdeflate/zlib_constants.h
|
|
98
|
+
- ext/deflate_ruby/libdeflate/zlib_decompress.c
|
|
99
|
+
- ext/deflate_ruby/matchfinder_common.h
|
|
100
|
+
- ext/deflate_ruby/matchfinder_impl.h
|
|
101
|
+
- ext/deflate_ruby/utils.c
|
|
102
|
+
- ext/deflate_ruby/zlib_compress.c
|
|
103
|
+
- ext/deflate_ruby/zlib_constants.h
|
|
104
|
+
- ext/deflate_ruby/zlib_decompress.c
|
|
161
105
|
- lib/deflate_ruby.rb
|
|
162
106
|
- lib/deflate_ruby/version.rb
|
|
163
|
-
|
|
107
|
+
- sig/deflate_ruby.rbs
|
|
108
|
+
- test/test_deflate_ruby.rb
|
|
109
|
+
- test/test_helper.rb
|
|
110
|
+
homepage: https://github.com/jgreninger/deflate-ruby
|
|
164
111
|
licenses:
|
|
165
112
|
- MIT
|
|
166
113
|
metadata:
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
changelog_uri: https://github.com/deflate-ruby/deflate-ruby/blob/master/README.md
|
|
171
|
-
documentation_uri: https://github.com/deflate-ruby/deflate-ruby
|
|
114
|
+
allowed_push_host: https://rubygems.org
|
|
115
|
+
homepage_uri: https://github.com/jgreninger/deflate-ruby
|
|
116
|
+
source_code_uri: https://github.com/jgreninger/deflate_ruby
|
|
172
117
|
post_install_message:
|
|
173
118
|
rdoc_options: []
|
|
174
119
|
require_paths:
|
|
@@ -177,7 +122,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
177
122
|
requirements:
|
|
178
123
|
- - ">="
|
|
179
124
|
- !ruby/object:Gem::Version
|
|
180
|
-
version: 2.
|
|
125
|
+
version: 3.2.0
|
|
181
126
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
182
127
|
requirements:
|
|
183
128
|
- - ">="
|
|
@@ -187,5 +132,5 @@ requirements: []
|
|
|
187
132
|
rubygems_version: 3.4.20
|
|
188
133
|
signing_key:
|
|
189
134
|
specification_version: 4
|
|
190
|
-
summary:
|
|
135
|
+
summary: Ruby bindings for libdeflate - fast DEFLATE, gzip, and zlib compression
|
|
191
136
|
test_files: []
|