zstd-ruby 1.5.2.2 → 1.5.4.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.
Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +15 -3
  3. data/ext/zstdruby/common.h +7 -0
  4. data/ext/zstdruby/libzstd/common/bits.h +175 -0
  5. data/ext/zstdruby/libzstd/common/bitstream.h +18 -59
  6. data/ext/zstdruby/libzstd/common/compiler.h +22 -3
  7. data/ext/zstdruby/libzstd/common/cpu.h +1 -1
  8. data/ext/zstdruby/libzstd/common/debug.c +1 -1
  9. data/ext/zstdruby/libzstd/common/debug.h +1 -1
  10. data/ext/zstdruby/libzstd/common/entropy_common.c +12 -40
  11. data/ext/zstdruby/libzstd/common/error_private.c +9 -2
  12. data/ext/zstdruby/libzstd/common/error_private.h +1 -1
  13. data/ext/zstdruby/libzstd/common/fse.h +5 -83
  14. data/ext/zstdruby/libzstd/common/fse_decompress.c +7 -99
  15. data/ext/zstdruby/libzstd/common/huf.h +65 -156
  16. data/ext/zstdruby/libzstd/common/mem.h +39 -46
  17. data/ext/zstdruby/libzstd/common/pool.c +26 -10
  18. data/ext/zstdruby/libzstd/common/pool.h +7 -1
  19. data/ext/zstdruby/libzstd/common/portability_macros.h +22 -3
  20. data/ext/zstdruby/libzstd/common/threading.c +68 -14
  21. data/ext/zstdruby/libzstd/common/threading.h +5 -10
  22. data/ext/zstdruby/libzstd/common/xxhash.c +2 -2
  23. data/ext/zstdruby/libzstd/common/xxhash.h +8 -8
  24. data/ext/zstdruby/libzstd/common/zstd_common.c +1 -1
  25. data/ext/zstdruby/libzstd/common/zstd_deps.h +1 -1
  26. data/ext/zstdruby/libzstd/common/zstd_internal.h +17 -113
  27. data/ext/zstdruby/libzstd/common/zstd_trace.h +3 -3
  28. data/ext/zstdruby/libzstd/compress/clevels.h +1 -1
  29. data/ext/zstdruby/libzstd/compress/fse_compress.c +7 -124
  30. data/ext/zstdruby/libzstd/compress/hist.c +1 -1
  31. data/ext/zstdruby/libzstd/compress/hist.h +1 -1
  32. data/ext/zstdruby/libzstd/compress/huf_compress.c +234 -169
  33. data/ext/zstdruby/libzstd/compress/zstd_compress.c +1055 -455
  34. data/ext/zstdruby/libzstd/compress/zstd_compress_internal.h +165 -145
  35. data/ext/zstdruby/libzstd/compress/zstd_compress_literals.c +115 -39
  36. data/ext/zstdruby/libzstd/compress/zstd_compress_literals.h +16 -8
  37. data/ext/zstdruby/libzstd/compress/zstd_compress_sequences.c +3 -3
  38. data/ext/zstdruby/libzstd/compress/zstd_compress_sequences.h +1 -1
  39. data/ext/zstdruby/libzstd/compress/zstd_compress_superblock.c +25 -21
  40. data/ext/zstdruby/libzstd/compress/zstd_compress_superblock.h +1 -1
  41. data/ext/zstdruby/libzstd/compress/zstd_cwksp.h +5 -3
  42. data/ext/zstdruby/libzstd/compress/zstd_double_fast.c +95 -33
  43. data/ext/zstdruby/libzstd/compress/zstd_double_fast.h +3 -2
  44. data/ext/zstdruby/libzstd/compress/zstd_fast.c +433 -148
  45. data/ext/zstdruby/libzstd/compress/zstd_fast.h +3 -2
  46. data/ext/zstdruby/libzstd/compress/zstd_lazy.c +306 -283
  47. data/ext/zstdruby/libzstd/compress/zstd_lazy.h +4 -2
  48. data/ext/zstdruby/libzstd/compress/zstd_ldm.c +5 -5
  49. data/ext/zstdruby/libzstd/compress/zstd_ldm.h +1 -1
  50. data/ext/zstdruby/libzstd/compress/zstd_ldm_geartab.h +1 -1
  51. data/ext/zstdruby/libzstd/compress/zstd_opt.c +104 -80
  52. data/ext/zstdruby/libzstd/compress/zstd_opt.h +1 -1
  53. data/ext/zstdruby/libzstd/compress/zstdmt_compress.c +12 -5
  54. data/ext/zstdruby/libzstd/compress/zstdmt_compress.h +1 -1
  55. data/ext/zstdruby/libzstd/decompress/huf_decompress.c +434 -441
  56. data/ext/zstdruby/libzstd/decompress/huf_decompress_amd64.S +30 -39
  57. data/ext/zstdruby/libzstd/decompress/zstd_ddict.c +3 -4
  58. data/ext/zstdruby/libzstd/decompress/zstd_ddict.h +1 -1
  59. data/ext/zstdruby/libzstd/decompress/zstd_decompress.c +164 -42
  60. data/ext/zstdruby/libzstd/decompress/zstd_decompress_block.c +186 -65
  61. data/ext/zstdruby/libzstd/decompress/zstd_decompress_block.h +1 -1
  62. data/ext/zstdruby/libzstd/decompress/zstd_decompress_internal.h +4 -2
  63. data/ext/zstdruby/libzstd/dictBuilder/cover.c +19 -15
  64. data/ext/zstdruby/libzstd/dictBuilder/cover.h +1 -1
  65. data/ext/zstdruby/libzstd/dictBuilder/fastcover.c +2 -2
  66. data/ext/zstdruby/libzstd/dictBuilder/zdict.c +9 -87
  67. data/ext/zstdruby/libzstd/zdict.h +53 -31
  68. data/ext/zstdruby/libzstd/zstd.h +489 -90
  69. data/ext/zstdruby/libzstd/zstd_errors.h +27 -8
  70. data/ext/zstdruby/main.c +4 -0
  71. data/ext/zstdruby/streaming_compress.c +1 -7
  72. data/ext/zstdruby/zstdruby.c +110 -26
  73. data/lib/zstd-ruby/version.rb +1 -1
  74. data/lib/zstd-ruby.rb +0 -1
  75. metadata +7 -6
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright (c) Yann Collet, Facebook, Inc.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  * All rights reserved.
4
4
  *
5
5
  * This source code is licensed under both the BSD-style license (found in the
@@ -20,19 +20,31 @@ extern "C" {
20
20
 
21
21
 
22
22
  /* ===== ZSTDERRORLIB_API : control library symbols visibility ===== */
23
- #ifndef ZSTDERRORLIB_VISIBILITY
24
- # if defined(__GNUC__) && (__GNUC__ >= 4)
25
- # define ZSTDERRORLIB_VISIBILITY __attribute__ ((visibility ("default")))
23
+ #ifndef ZSTDERRORLIB_VISIBLE
24
+ /* Backwards compatibility with old macro name */
25
+ # ifdef ZSTDERRORLIB_VISIBILITY
26
+ # define ZSTDERRORLIB_VISIBLE ZSTDERRORLIB_VISIBILITY
27
+ # elif defined(__GNUC__) && (__GNUC__ >= 4) && !defined(__MINGW32__)
28
+ # define ZSTDERRORLIB_VISIBLE __attribute__ ((visibility ("default")))
26
29
  # else
27
- # define ZSTDERRORLIB_VISIBILITY
30
+ # define ZSTDERRORLIB_VISIBLE
28
31
  # endif
29
32
  #endif
33
+
34
+ #ifndef ZSTDERRORLIB_HIDDEN
35
+ # if defined(__GNUC__) && (__GNUC__ >= 4) && !defined(__MINGW32__)
36
+ # define ZSTDERRORLIB_HIDDEN __attribute__ ((visibility ("hidden")))
37
+ # else
38
+ # define ZSTDERRORLIB_HIDDEN
39
+ # endif
40
+ #endif
41
+
30
42
  #if defined(ZSTD_DLL_EXPORT) && (ZSTD_DLL_EXPORT==1)
31
- # define ZSTDERRORLIB_API __declspec(dllexport) ZSTDERRORLIB_VISIBILITY
43
+ # define ZSTDERRORLIB_API __declspec(dllexport) ZSTDERRORLIB_VISIBLE
32
44
  #elif defined(ZSTD_DLL_IMPORT) && (ZSTD_DLL_IMPORT==1)
33
- # define ZSTDERRORLIB_API __declspec(dllimport) ZSTDERRORLIB_VISIBILITY /* It isn't required but allows to generate better code, saving a function pointer load from the IAT and an indirect jump.*/
45
+ # define ZSTDERRORLIB_API __declspec(dllimport) ZSTDERRORLIB_VISIBLE /* It isn't required but allows to generate better code, saving a function pointer load from the IAT and an indirect jump.*/
34
46
  #else
35
- # define ZSTDERRORLIB_API ZSTDERRORLIB_VISIBILITY
47
+ # define ZSTDERRORLIB_API ZSTDERRORLIB_VISIBLE
36
48
  #endif
37
49
 
38
50
  /*-*********************************************
@@ -58,14 +70,17 @@ typedef enum {
58
70
  ZSTD_error_frameParameter_windowTooLarge = 16,
59
71
  ZSTD_error_corruption_detected = 20,
60
72
  ZSTD_error_checksum_wrong = 22,
73
+ ZSTD_error_literals_headerWrong = 24,
61
74
  ZSTD_error_dictionary_corrupted = 30,
62
75
  ZSTD_error_dictionary_wrong = 32,
63
76
  ZSTD_error_dictionaryCreation_failed = 34,
64
77
  ZSTD_error_parameter_unsupported = 40,
78
+ ZSTD_error_parameter_combination_unsupported = 41,
65
79
  ZSTD_error_parameter_outOfBound = 42,
66
80
  ZSTD_error_tableLog_tooLarge = 44,
67
81
  ZSTD_error_maxSymbolValue_tooLarge = 46,
68
82
  ZSTD_error_maxSymbolValue_tooSmall = 48,
83
+ ZSTD_error_stabilityCondition_notRespected = 50,
69
84
  ZSTD_error_stage_wrong = 60,
70
85
  ZSTD_error_init_missing = 62,
71
86
  ZSTD_error_memory_allocation = 64,
@@ -73,11 +88,15 @@ typedef enum {
73
88
  ZSTD_error_dstSize_tooSmall = 70,
74
89
  ZSTD_error_srcSize_wrong = 72,
75
90
  ZSTD_error_dstBuffer_null = 74,
91
+ ZSTD_error_noForwardProgress_destFull = 80,
92
+ ZSTD_error_noForwardProgress_inputEmpty = 82,
76
93
  /* following error codes are __NOT STABLE__, they can be removed or changed in future versions */
77
94
  ZSTD_error_frameIndex_tooLarge = 100,
78
95
  ZSTD_error_seekableIO = 102,
79
96
  ZSTD_error_dstBuffer_wrong = 104,
80
97
  ZSTD_error_srcBuffer_wrong = 105,
98
+ ZSTD_error_sequenceProducer_failed = 106,
99
+ ZSTD_error_externalSequences_invalid = 107,
81
100
  ZSTD_error_maxCode = 120 /* never EVER use this value directly, it can change in future versions! Use ZSTD_isError() instead */
82
101
  } ZSTD_ErrorCode;
83
102
 
data/ext/zstdruby/main.c CHANGED
@@ -7,6 +7,10 @@ void zstd_ruby_streaming_decompress_init(void);
7
7
  void
8
8
  Init_zstdruby(void)
9
9
  {
10
+ #ifdef HAVE_RB_EXT_RACTOR_SAFE
11
+ rb_ext_ractor_safe(true);
12
+ #endif
13
+
10
14
  rb_mZstd = rb_define_module("Zstd");
11
15
  zstd_ruby_init();
12
16
  zstd_ruby_streaming_compress_init();
@@ -53,13 +53,7 @@ rb_streaming_compress_initialize(int argc, VALUE *argv, VALUE obj)
53
53
  {
54
54
  VALUE compression_level_value;
55
55
  rb_scan_args(argc, argv, "01", &compression_level_value);
56
-
57
- int compression_level;
58
- if (NIL_P(compression_level_value)) {
59
- compression_level = ZSTD_CLEVEL_DEFAULT;
60
- } else {
61
- compression_level = NUM2INT(compression_level_value);
62
- }
56
+ int compression_level = convert_compression_level(compression_level_value);
63
57
 
64
58
  struct streaming_compress_t* sc;
65
59
  TypedData_Get_Struct(obj, struct streaming_compress_t, &streaming_compress_type, sc);
@@ -8,41 +8,74 @@ static VALUE zstdVersion(VALUE self)
8
8
  return INT2NUM(version);
9
9
  }
10
10
 
11
- static VALUE compress(int argc, VALUE *argv, VALUE self)
11
+ static VALUE rb_compress(int argc, VALUE *argv, VALUE self)
12
12
  {
13
13
  VALUE input_value;
14
14
  VALUE compression_level_value;
15
15
  rb_scan_args(argc, argv, "11", &input_value, &compression_level_value);
16
+ int compression_level = convert_compression_level(compression_level_value);
16
17
 
17
18
  StringValue(input_value);
18
- const char* input_data = RSTRING_PTR(input_value);
19
+ char* input_data = RSTRING_PTR(input_value);
19
20
  size_t input_size = RSTRING_LEN(input_value);
21
+ size_t max_compressed_size = ZSTD_compressBound(input_size);
20
22
 
21
- int compression_level;
22
- if (NIL_P(compression_level_value)) {
23
- compression_level = 0; // The default. See ZSTD_CLEVEL_DEFAULT in zstd_compress.c
24
- } else {
25
- compression_level = NUM2INT(compression_level_value);
23
+ VALUE output = rb_str_new(NULL, max_compressed_size);
24
+ char* output_data = RSTRING_PTR(output);
25
+ size_t compressed_size = ZSTD_compress((void*)output_data, max_compressed_size,
26
+ (void*)input_data, input_size, compression_level);
27
+ if (ZSTD_isError(compressed_size)) {
28
+ rb_raise(rb_eRuntimeError, "%s: %s", "compress failed", ZSTD_getErrorName(compressed_size));
26
29
  }
27
30
 
28
- // do compress
31
+ rb_str_resize(output, compressed_size);
32
+ return output;
33
+ }
34
+
35
+ static VALUE rb_compress_using_dict(int argc, VALUE *argv, VALUE self)
36
+ {
37
+ VALUE input_value;
38
+ VALUE dict;
39
+ VALUE compression_level_value;
40
+ rb_scan_args(argc, argv, "21", &input_value, &dict, &compression_level_value);
41
+ int compression_level = convert_compression_level(compression_level_value);
42
+
43
+ StringValue(input_value);
44
+ char* input_data = RSTRING_PTR(input_value);
45
+ size_t input_size = RSTRING_LEN(input_value);
29
46
  size_t max_compressed_size = ZSTD_compressBound(input_size);
30
47
 
48
+ char* dict_buffer = RSTRING_PTR(dict);
49
+ size_t dict_size = RSTRING_LEN(dict);
50
+
51
+ ZSTD_CDict* const cdict = ZSTD_createCDict(dict_buffer, dict_size, compression_level);
52
+ if (cdict == NULL) {
53
+ rb_raise(rb_eRuntimeError, "%s", "ZSTD_createCDict failed");
54
+ }
55
+ ZSTD_CCtx* const ctx = ZSTD_createCCtx();
56
+ if (ctx == NULL) {
57
+ ZSTD_freeCDict(cdict);
58
+ rb_raise(rb_eRuntimeError, "%s", "ZSTD_createCCtx failed");
59
+ }
60
+
31
61
  VALUE output = rb_str_new(NULL, max_compressed_size);
32
62
  char* output_data = RSTRING_PTR(output);
33
-
34
- size_t compressed_size = ZSTD_compress((void*)output_data, max_compressed_size,
35
- (const void*)input_data, input_size, compression_level);
63
+ size_t const compressed_size = ZSTD_compress_usingCDict(ctx, (void*)output_data, max_compressed_size,
64
+ (void*)input_data, input_size, cdict);
36
65
 
37
66
  if (ZSTD_isError(compressed_size)) {
67
+ ZSTD_freeCDict(cdict);
68
+ ZSTD_freeCCtx(ctx);
38
69
  rb_raise(rb_eRuntimeError, "%s: %s", "compress failed", ZSTD_getErrorName(compressed_size));
39
- } else {
40
- rb_str_resize(output, compressed_size);
41
70
  }
42
71
 
72
+ rb_str_resize(output, compressed_size);
73
+ ZSTD_freeCDict(cdict);
74
+ ZSTD_freeCCtx(ctx);
43
75
  return output;
44
76
  }
45
77
 
78
+
46
79
  static VALUE decompress_buffered(const char* input_data, size_t input_size)
47
80
  {
48
81
  const size_t outputBufferSize = 4096;
@@ -58,7 +91,6 @@ static VALUE decompress_buffered(const char* input_data, size_t input_size)
58
91
  rb_raise(rb_eRuntimeError, "%s: %s", "ZSTD_initDStream failed", ZSTD_getErrorName(initResult));
59
92
  }
60
93
 
61
-
62
94
  VALUE output_string = rb_str_new(NULL, 0);
63
95
  ZSTD_outBuffer output = { NULL, 0, 0 };
64
96
 
@@ -80,23 +112,24 @@ static VALUE decompress_buffered(const char* input_data, size_t input_size)
80
112
  return output_string;
81
113
  }
82
114
 
83
- static VALUE decompress(VALUE self, VALUE input)
115
+ static VALUE rb_decompress(VALUE self, VALUE input_value)
84
116
  {
85
- StringValue(input);
86
- const char* input_data = RSTRING_PTR(input);
87
- size_t input_size = RSTRING_LEN(input);
88
-
89
- uint64_t uncompressed_size = ZSTD_getDecompressedSize(input_data, input_size);
117
+ StringValue(input_value);
118
+ char* input_data = RSTRING_PTR(input_value);
119
+ size_t input_size = RSTRING_LEN(input_value);
90
120
 
91
- if (uncompressed_size == 0) {
121
+ unsigned long long const uncompressed_size = ZSTD_getFrameContentSize(input_data, input_size);
122
+ if (uncompressed_size == ZSTD_CONTENTSIZE_ERROR) {
123
+ rb_raise(rb_eRuntimeError, "%s: %s", "not compressed by zstd", ZSTD_getErrorName(uncompressed_size));
124
+ }
125
+ if (uncompressed_size == ZSTD_CONTENTSIZE_UNKNOWN) {
92
126
  return decompress_buffered(input_data, input_size);
93
127
  }
94
128
 
95
129
  VALUE output = rb_str_new(NULL, uncompressed_size);
96
130
  char* output_data = RSTRING_PTR(output);
97
-
98
- size_t decompress_size = ZSTD_decompress((void*)output_data, uncompressed_size,
99
- (const void*)input_data, input_size);
131
+ size_t const decompress_size = ZSTD_decompress((void*)output_data, uncompressed_size,
132
+ (void*)input_data, input_size);
100
133
 
101
134
  if (ZSTD_isError(decompress_size)) {
102
135
  rb_raise(rb_eRuntimeError, "%s: %s", "decompress error", ZSTD_getErrorName(decompress_size));
@@ -105,10 +138,61 @@ static VALUE decompress(VALUE self, VALUE input)
105
138
  return output;
106
139
  }
107
140
 
141
+ static VALUE rb_decompress_using_dict(int argc, VALUE *argv, VALUE self)
142
+ {
143
+ VALUE input_value;
144
+ VALUE dict;
145
+ rb_scan_args(argc, argv, "20", &input_value, &dict);
146
+
147
+ StringValue(input_value);
148
+ char* input_data = RSTRING_PTR(input_value);
149
+ size_t input_size = RSTRING_LEN(input_value);
150
+ unsigned long long const uncompressed_size = ZSTD_getFrameContentSize(input_data, input_size);
151
+ if (uncompressed_size == ZSTD_CONTENTSIZE_ERROR) {
152
+ rb_raise(rb_eRuntimeError, "%s: %s", "not compressed by zstd", ZSTD_getErrorName(uncompressed_size));
153
+ }
154
+ if (uncompressed_size == ZSTD_CONTENTSIZE_UNKNOWN) {
155
+ return decompress_buffered(input_data, input_size);
156
+ }
157
+ VALUE output = rb_str_new(NULL, uncompressed_size);
158
+ char* output_data = RSTRING_PTR(output);
159
+
160
+ char* dict_buffer = RSTRING_PTR(dict);
161
+ size_t dict_size = RSTRING_LEN(dict);
162
+ ZSTD_DDict* const ddict = ZSTD_createDDict(dict_buffer, dict_size);
163
+ if (ddict == NULL) {
164
+ rb_raise(rb_eRuntimeError, "%s", "ZSTD_createDDict failed");
165
+ }
166
+
167
+ unsigned const expected_dict_id = ZSTD_getDictID_fromDDict(ddict);
168
+ unsigned const actual_dict_id = ZSTD_getDictID_fromFrame(input_data, input_size);
169
+ if (expected_dict_id != actual_dict_id) {
170
+ ZSTD_freeDDict(ddict);
171
+ rb_raise(rb_eRuntimeError, "%s: %s", "DictID mismatch", ZSTD_getErrorName(uncompressed_size));
172
+ }
173
+
174
+ ZSTD_DCtx* const ctx = ZSTD_createDCtx();
175
+ if (ctx == NULL) {
176
+ ZSTD_freeDDict(ddict);
177
+ rb_raise(rb_eRuntimeError, "%s", "ZSTD_createDCtx failed");
178
+ }
179
+ size_t const decompress_size = ZSTD_decompress_usingDDict(ctx, output_data, uncompressed_size, input_data, input_size, ddict);
180
+ if (ZSTD_isError(decompress_size)) {
181
+ ZSTD_freeDDict(ddict);
182
+ ZSTD_freeDCtx(ctx);
183
+ rb_raise(rb_eRuntimeError, "%s: %s", "decompress error", ZSTD_getErrorName(decompress_size));
184
+ }
185
+ ZSTD_freeDDict(ddict);
186
+ ZSTD_freeDCtx(ctx);
187
+ return output;
188
+ }
189
+
108
190
  void
109
191
  zstd_ruby_init(void)
110
192
  {
111
193
  rb_define_module_function(rb_mZstd, "zstd_version", zstdVersion, 0);
112
- rb_define_module_function(rb_mZstd, "compress", compress, -1);
113
- rb_define_module_function(rb_mZstd, "decompress", decompress, 1);
194
+ rb_define_module_function(rb_mZstd, "compress", rb_compress, -1);
195
+ rb_define_module_function(rb_mZstd, "compress_using_dict", rb_compress_using_dict, -1);
196
+ rb_define_module_function(rb_mZstd, "decompress", rb_decompress, 1);
197
+ rb_define_module_function(rb_mZstd, "decompress_using_dict", rb_decompress_using_dict, -1);
114
198
  }
@@ -1,3 +1,3 @@
1
1
  module Zstd
2
- VERSION = "1.5.2.2"
2
+ VERSION = "1.5.4.0"
3
3
  end
data/lib/zstd-ruby.rb CHANGED
@@ -2,5 +2,4 @@ require "zstd-ruby/version"
2
2
  require "zstd-ruby/zstdruby"
3
3
 
4
4
  module Zstd
5
- # Your code goes here...
6
5
  end
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.2.2
4
+ version: 1.5.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - SpringMT
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-06-23 00:00:00.000000000 Z
11
+ date: 2023-02-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -87,6 +87,7 @@ files:
87
87
  - bin/setup
88
88
  - ext/zstdruby/common.h
89
89
  - ext/zstdruby/extconf.rb
90
+ - ext/zstdruby/libzstd/common/bits.h
90
91
  - ext/zstdruby/libzstd/common/bitstream.h
91
92
  - ext/zstdruby/libzstd/common/compiler.h
92
93
  - ext/zstdruby/libzstd/common/cpu.h
@@ -166,7 +167,7 @@ homepage: https://github.com/SpringMT/zstd-ruby
166
167
  licenses:
167
168
  - MIT
168
169
  metadata: {}
169
- post_install_message:
170
+ post_install_message:
170
171
  rdoc_options: []
171
172
  require_paths:
172
173
  - lib
@@ -181,8 +182,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
181
182
  - !ruby/object:Gem::Version
182
183
  version: '0'
183
184
  requirements: []
184
- rubygems_version: 3.1.6
185
- signing_key:
185
+ rubygems_version: 3.3.26
186
+ signing_key:
186
187
  specification_version: 4
187
188
  summary: Ruby binding for zstd(Zstandard - Fast real-time compression algorithm)
188
189
  test_files: []