zstd-ruby 1.5.6.6 → 1.5.7.0
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/.gitignore +1 -0
- data/README.md +38 -1
- data/ext/zstdruby/common.h +37 -11
- data/ext/zstdruby/libzstd/common/bits.h +92 -87
- data/ext/zstdruby/libzstd/common/bitstream.h +26 -29
- data/ext/zstdruby/libzstd/common/compiler.h +36 -22
- data/ext/zstdruby/libzstd/common/cpu.h +1 -1
- data/ext/zstdruby/libzstd/common/debug.h +0 -9
- data/ext/zstdruby/libzstd/common/error_private.c +1 -0
- data/ext/zstdruby/libzstd/common/error_private.h +0 -10
- data/ext/zstdruby/libzstd/common/fse.h +2 -17
- data/ext/zstdruby/libzstd/common/fse_decompress.c +2 -0
- data/ext/zstdruby/libzstd/common/huf.h +0 -9
- data/ext/zstdruby/libzstd/common/mem.h +7 -11
- data/ext/zstdruby/libzstd/common/pool.h +0 -9
- data/ext/zstdruby/libzstd/common/portability_macros.h +22 -9
- data/ext/zstdruby/libzstd/common/threading.h +0 -8
- data/ext/zstdruby/libzstd/common/xxhash.h +93 -19
- data/ext/zstdruby/libzstd/common/zstd_deps.h +12 -0
- data/ext/zstdruby/libzstd/common/zstd_internal.h +1 -69
- data/ext/zstdruby/libzstd/common/zstd_trace.h +5 -12
- data/ext/zstdruby/libzstd/compress/hist.c +10 -0
- data/ext/zstdruby/libzstd/compress/hist.h +7 -0
- data/ext/zstdruby/libzstd/compress/zstd_compress.c +1057 -367
- data/ext/zstdruby/libzstd/compress/zstd_compress_internal.h +227 -125
- data/ext/zstdruby/libzstd/compress/zstd_compress_literals.c +1 -1
- data/ext/zstdruby/libzstd/compress/zstd_compress_sequences.c +7 -7
- data/ext/zstdruby/libzstd/compress/zstd_compress_sequences.h +7 -6
- data/ext/zstdruby/libzstd/compress/zstd_compress_superblock.c +17 -17
- data/ext/zstdruby/libzstd/compress/zstd_cwksp.h +41 -24
- data/ext/zstdruby/libzstd/compress/zstd_double_fast.c +58 -50
- data/ext/zstdruby/libzstd/compress/zstd_double_fast.h +4 -12
- data/ext/zstdruby/libzstd/compress/zstd_fast.c +91 -74
- data/ext/zstdruby/libzstd/compress/zstd_fast.h +4 -12
- data/ext/zstdruby/libzstd/compress/zstd_lazy.c +64 -64
- data/ext/zstdruby/libzstd/compress/zstd_lazy.h +30 -39
- data/ext/zstdruby/libzstd/compress/zstd_ldm.c +48 -33
- data/ext/zstdruby/libzstd/compress/zstd_ldm.h +6 -14
- data/ext/zstdruby/libzstd/compress/zstd_opt.c +55 -51
- data/ext/zstdruby/libzstd/compress/zstd_opt.h +8 -16
- data/ext/zstdruby/libzstd/compress/zstd_preSplit.c +238 -0
- data/ext/zstdruby/libzstd/compress/zstd_preSplit.h +33 -0
- data/ext/zstdruby/libzstd/compress/zstdmt_compress.c +134 -93
- data/ext/zstdruby/libzstd/compress/zstdmt_compress.h +4 -15
- data/ext/zstdruby/libzstd/decompress/huf_decompress_amd64.S +10 -3
- data/ext/zstdruby/libzstd/decompress/zstd_decompress.c +14 -11
- data/ext/zstdruby/libzstd/decompress/zstd_decompress_block.c +6 -12
- data/ext/zstdruby/libzstd/decompress/zstd_decompress_internal.h +5 -5
- data/ext/zstdruby/libzstd/dictBuilder/cover.c +60 -19
- data/ext/zstdruby/libzstd/dictBuilder/divsufsort.h +0 -10
- data/ext/zstdruby/libzstd/dictBuilder/zdict.c +2 -2
- data/ext/zstdruby/libzstd/zdict.h +15 -8
- data/ext/zstdruby/libzstd/zstd.h +241 -132
- data/ext/zstdruby/libzstd/zstd_errors.h +1 -8
- data/ext/zstdruby/main.c +4 -0
- data/ext/zstdruby/zstdruby.c +92 -0
- data/lib/zstd-ruby/stream_writer.rb +1 -1
- data/lib/zstd-ruby/version.rb +1 -1
- metadata +5 -3
@@ -15,10 +15,6 @@
|
|
15
15
|
extern "C" {
|
16
16
|
#endif
|
17
17
|
|
18
|
-
/*===== dependency =====*/
|
19
|
-
#include <stddef.h> /* size_t */
|
20
|
-
|
21
|
-
|
22
18
|
/* ===== ZSTDERRORLIB_API : control library symbols visibility ===== */
|
23
19
|
#ifndef ZSTDERRORLIB_VISIBLE
|
24
20
|
/* Backwards compatibility with old macro name */
|
@@ -80,6 +76,7 @@ typedef enum {
|
|
80
76
|
ZSTD_error_tableLog_tooLarge = 44,
|
81
77
|
ZSTD_error_maxSymbolValue_tooLarge = 46,
|
82
78
|
ZSTD_error_maxSymbolValue_tooSmall = 48,
|
79
|
+
ZSTD_error_cannotProduce_uncompressedBlock = 49,
|
83
80
|
ZSTD_error_stabilityCondition_notRespected = 50,
|
84
81
|
ZSTD_error_stage_wrong = 60,
|
85
82
|
ZSTD_error_init_missing = 62,
|
@@ -100,10 +97,6 @@ typedef enum {
|
|
100
97
|
ZSTD_error_maxCode = 120 /* never EVER use this value directly, it can change in future versions! Use ZSTD_isError() instead */
|
101
98
|
} ZSTD_ErrorCode;
|
102
99
|
|
103
|
-
/*! ZSTD_getErrorCode() :
|
104
|
-
convert a `size_t` function result into a `ZSTD_ErrorCode` enum type,
|
105
|
-
which can be used to compare with enum list published above */
|
106
|
-
ZSTDERRORLIB_API ZSTD_ErrorCode ZSTD_getErrorCode(size_t functionResult);
|
107
100
|
ZSTDERRORLIB_API const char* ZSTD_getErrorString(ZSTD_ErrorCode code); /**< Same as ZSTD_getErrorName, but using a `ZSTD_ErrorCode` enum argument */
|
108
101
|
|
109
102
|
|
data/ext/zstdruby/main.c
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
#include "common.h"
|
2
2
|
|
3
3
|
VALUE rb_mZstd;
|
4
|
+
VALUE rb_cCDict;
|
5
|
+
VALUE rb_cDDict;
|
4
6
|
void zstd_ruby_init(void);
|
5
7
|
void zstd_ruby_skippable_frame_init(void);
|
6
8
|
void zstd_ruby_streaming_compress_init(void);
|
@@ -14,6 +16,8 @@ Init_zstdruby(void)
|
|
14
16
|
#endif
|
15
17
|
|
16
18
|
rb_mZstd = rb_define_module("Zstd");
|
19
|
+
rb_cCDict = rb_define_class_under(rb_mZstd, "CDict", rb_cObject);
|
20
|
+
rb_cDDict = rb_define_class_under(rb_mZstd, "DDict", rb_cObject);
|
17
21
|
zstd_ruby_init();
|
18
22
|
zstd_ruby_skippable_frame_init();
|
19
23
|
zstd_ruby_streaming_compress_init();
|
data/ext/zstdruby/zstdruby.c
CHANGED
@@ -195,6 +195,90 @@ static VALUE rb_decompress_using_dict(int argc, VALUE *argv, VALUE self)
|
|
195
195
|
return output;
|
196
196
|
}
|
197
197
|
|
198
|
+
static void free_cdict(void *dict)
|
199
|
+
{
|
200
|
+
ZSTD_freeCDict(dict);
|
201
|
+
}
|
202
|
+
|
203
|
+
static size_t sizeof_cdict(const void *dict)
|
204
|
+
{
|
205
|
+
return ZSTD_sizeof_CDict(dict);
|
206
|
+
}
|
207
|
+
|
208
|
+
static void free_ddict(void *dict)
|
209
|
+
{
|
210
|
+
ZSTD_freeDDict(dict);
|
211
|
+
}
|
212
|
+
|
213
|
+
static size_t sizeof_ddict(const void *dict)
|
214
|
+
{
|
215
|
+
return ZSTD_sizeof_DDict(dict);
|
216
|
+
}
|
217
|
+
|
218
|
+
static const rb_data_type_t cdict_type = {
|
219
|
+
"Zstd::CDict",
|
220
|
+
{0, free_cdict, sizeof_cdict,},
|
221
|
+
0, 0, RUBY_TYPED_FREE_IMMEDIATELY
|
222
|
+
};
|
223
|
+
|
224
|
+
static const rb_data_type_t ddict_type = {
|
225
|
+
"Zstd::DDict",
|
226
|
+
{0, free_ddict, sizeof_ddict,},
|
227
|
+
0, 0, RUBY_TYPED_FREE_IMMEDIATELY
|
228
|
+
};
|
229
|
+
|
230
|
+
static VALUE rb_cdict_alloc(VALUE self)
|
231
|
+
{
|
232
|
+
ZSTD_CDict* cdict = NULL;
|
233
|
+
return TypedData_Wrap_Struct(self, &cdict_type, cdict);
|
234
|
+
}
|
235
|
+
|
236
|
+
static VALUE rb_cdict_initialize(int argc, VALUE *argv, VALUE self)
|
237
|
+
{
|
238
|
+
VALUE dict;
|
239
|
+
VALUE compression_level_value;
|
240
|
+
rb_scan_args(argc, argv, "11", &dict, &compression_level_value);
|
241
|
+
int compression_level = convert_compression_level(compression_level_value);
|
242
|
+
|
243
|
+
StringValue(dict);
|
244
|
+
char* dict_buffer = RSTRING_PTR(dict);
|
245
|
+
size_t dict_size = RSTRING_LEN(dict);
|
246
|
+
|
247
|
+
ZSTD_CDict* const cdict = ZSTD_createCDict(dict_buffer, dict_size, compression_level);
|
248
|
+
if (cdict == NULL) {
|
249
|
+
rb_raise(rb_eRuntimeError, "%s", "ZSTD_createCDict failed");
|
250
|
+
}
|
251
|
+
|
252
|
+
DATA_PTR(self) = cdict;
|
253
|
+
return self;
|
254
|
+
}
|
255
|
+
|
256
|
+
static VALUE rb_ddict_alloc(VALUE self)
|
257
|
+
{
|
258
|
+
ZSTD_CDict* ddict = NULL;
|
259
|
+
return TypedData_Wrap_Struct(self, &ddict_type, ddict);
|
260
|
+
}
|
261
|
+
|
262
|
+
static VALUE rb_ddict_initialize(VALUE self, VALUE dict)
|
263
|
+
{
|
264
|
+
StringValue(dict);
|
265
|
+
char* dict_buffer = RSTRING_PTR(dict);
|
266
|
+
size_t dict_size = RSTRING_LEN(dict);
|
267
|
+
|
268
|
+
ZSTD_DDict* const ddict = ZSTD_createDDict(dict_buffer, dict_size);
|
269
|
+
if (ddict == NULL) {
|
270
|
+
rb_raise(rb_eRuntimeError, "%s", "ZSTD_createDDict failed");
|
271
|
+
}
|
272
|
+
|
273
|
+
DATA_PTR(self) = ddict;
|
274
|
+
return self;
|
275
|
+
}
|
276
|
+
|
277
|
+
static VALUE rb_prohibit_copy(VALUE self, VALUE obj)
|
278
|
+
{
|
279
|
+
rb_raise(rb_eRuntimeError, "CDict cannot be duplicated");
|
280
|
+
}
|
281
|
+
|
198
282
|
void
|
199
283
|
zstd_ruby_init(void)
|
200
284
|
{
|
@@ -203,4 +287,12 @@ zstd_ruby_init(void)
|
|
203
287
|
rb_define_module_function(rb_mZstd, "compress_using_dict", rb_compress_using_dict, -1);
|
204
288
|
rb_define_module_function(rb_mZstd, "decompress", rb_decompress, -1);
|
205
289
|
rb_define_module_function(rb_mZstd, "decompress_using_dict", rb_decompress_using_dict, -1);
|
290
|
+
|
291
|
+
rb_define_alloc_func(rb_cCDict, rb_cdict_alloc);
|
292
|
+
rb_define_private_method(rb_cCDict, "initialize", rb_cdict_initialize, -1);
|
293
|
+
rb_define_method(rb_cCDict, "initialize_copy", rb_prohibit_copy, 1);
|
294
|
+
|
295
|
+
rb_define_alloc_func(rb_cDDict, rb_ddict_alloc);
|
296
|
+
rb_define_private_method(rb_cDDict, "initialize", rb_ddict_initialize, 1);
|
297
|
+
rb_define_method(rb_cDDict, "initialize_copy", rb_prohibit_copy, 1);
|
206
298
|
}
|
data/lib/zstd-ruby/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zstd-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.5.
|
4
|
+
version: 1.5.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- SpringMT
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-07-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -151,6 +151,8 @@ files:
|
|
151
151
|
- ext/zstdruby/libzstd/compress/zstd_ldm_geartab.h
|
152
152
|
- ext/zstdruby/libzstd/compress/zstd_opt.c
|
153
153
|
- ext/zstdruby/libzstd/compress/zstd_opt.h
|
154
|
+
- ext/zstdruby/libzstd/compress/zstd_preSplit.c
|
155
|
+
- ext/zstdruby/libzstd/compress/zstd_preSplit.h
|
154
156
|
- ext/zstdruby/libzstd/compress/zstdmt_compress.c
|
155
157
|
- ext/zstdruby/libzstd/compress/zstdmt_compress.h
|
156
158
|
- ext/zstdruby/libzstd/decompress/huf_decompress.c
|
@@ -200,7 +202,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
200
202
|
- !ruby/object:Gem::Version
|
201
203
|
version: '0'
|
202
204
|
requirements: []
|
203
|
-
rubygems_version: 3.
|
205
|
+
rubygems_version: 3.4.19
|
204
206
|
signing_key:
|
205
207
|
specification_version: 4
|
206
208
|
summary: Ruby binding for zstd(Zstandard - Fast real-time compression algorithm)
|