ruby-zstds 1.1.1 → 1.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 882ef3555df6569fdb51a8689d2e7b8e710255f98a08a631e023ae0160d3ad86
4
- data.tar.gz: 233e455b9819cab316812fd7c977735972ad5ff2eeee1a816c329e7a5b7661f1
3
+ metadata.gz: fd4f85616a45bb4ea60d08e4f6e4dfa0091d5a098458e3f5c5ac81d6c9113aa3
4
+ data.tar.gz: a7b1afaa038f4339b0de26e91ae86c16a942620f8f450cbc791a7330cec372cb
5
5
  SHA512:
6
- metadata.gz: 69ce6c1b92687ca88e87619a3314acf3b8c0584c56a1694730e5e5bf7139d5db3c7c280f01df79e1fb010a3c61c0c46af76a82bb1f4815b481421fb7b885f3d4
7
- data.tar.gz: b77df0f6f9b98523ca3e611bbab7d5655a94c7e637fc61511096da614cb95672fab113894de375f6f406015aebc6eded0d0dabb5025644891775bec8a04cadda
6
+ metadata.gz: 0e76817922415c3fa1381aca25636aef90cc1a4bb98c8c8adc998667fc5eb10e24e27f66127f6c93d341af222bbf44229ef37996ea24fa89888b5381f0e8f1fb
7
+ data.tar.gz: c4aaa1527b723e6c2eec1f185b10657d50fd2e55fb0a9debf4cf993d561931b8cb60216023b0971d4739389eadcdccec011db668b943bfdc49f323e5852f409c
data/ext/extconf.rb CHANGED
@@ -9,26 +9,96 @@ have_func "rb_thread_call_without_gvl", "ruby/thread.h"
9
9
  # https://bugs.gentoo.org/713940
10
10
  $LDFLAGS << " -pthread" # rubocop:disable Style/GlobalVars
11
11
 
12
- def require_header(name, types = [])
12
+ def require_header(name, constants: [], macroses: [], types: [])
13
13
  abort "Can't find #{name} header" unless find_header name
14
14
 
15
+ constants.each do |constant|
16
+ abort "Can't find #{constant} constant in #{name} header" unless have_const constant, name
17
+ end
18
+
19
+ macroses.each do |macro|
20
+ abort "Can't find #{macro} macro in #{name} header" unless have_macro macro, name
21
+ end
22
+
15
23
  types.each do |type|
16
24
  abort "Can't find #{type} type in #{name} header" unless find_type type, nil, name
17
25
  end
18
26
  end
19
27
 
20
- require_header "zstd_errors.h", %w[
21
- ZSTD_ErrorCode
22
- ]
23
- require_header "zstd.h", [
24
- "ZSTD_CCtx *",
25
- "ZSTD_DCtx *",
26
- "ZSTD_strategy",
27
- "ZSTD_bounds",
28
- "ZSTD_inBuffer",
29
- "ZSTD_outBuffer"
30
- ]
31
28
  require_header "zdict.h"
29
+ require_header(
30
+ "zstd.h",
31
+ :constants => %w[
32
+ ZSTD_btlazy2
33
+ ZSTD_btopt
34
+ ZSTD_btultra
35
+ ZSTD_btultra2
36
+ ZSTD_c_chainLog
37
+ ZSTD_c_checksumFlag
38
+ ZSTD_c_compressionLevel
39
+ ZSTD_c_contentSizeFlag
40
+ ZSTD_c_dictIDFlag
41
+ ZSTD_c_enableLongDistanceMatching
42
+ ZSTD_c_hashLog
43
+ ZSTD_c_jobSize
44
+ ZSTD_c_ldmBucketSizeLog
45
+ ZSTD_c_ldmHashLog
46
+ ZSTD_c_ldmHashRateLog
47
+ ZSTD_c_ldmMinMatch
48
+ ZSTD_c_minMatch
49
+ ZSTD_c_nbWorkers
50
+ ZSTD_c_overlapLog
51
+ ZSTD_c_searchLog
52
+ ZSTD_c_strategy
53
+ ZSTD_c_targetLength
54
+ ZSTD_c_windowLog
55
+ ZSTD_dfast
56
+ ZSTD_d_windowLogMax
57
+ ZSTD_e_continue
58
+ ZSTD_e_end
59
+ ZSTD_e_flush
60
+ ZSTD_fast
61
+ ZSTD_greedy
62
+ ZSTD_lazy
63
+ ZSTD_lazy2
64
+ ],
65
+ :macroses => %w[ZSTD_VERSION_STRING],
66
+ :types => [
67
+ "ZSTD_bounds",
68
+ "ZSTD_CCtx *",
69
+ "ZSTD_DCtx *",
70
+ "ZSTD_inBuffer",
71
+ "ZSTD_outBuffer",
72
+ "ZSTD_strategy"
73
+ ]
74
+ )
75
+ require_header(
76
+ "zstd_errors.h",
77
+ :constants => %w[
78
+ ZSTD_error_checksum_wrong
79
+ ZSTD_error_corruption_detected
80
+ ZSTD_error_dictionaryCreation_failed
81
+ ZSTD_error_dictionary_corrupted
82
+ ZSTD_error_dictionary_wrong
83
+ ZSTD_error_dstBuffer_null
84
+ ZSTD_error_dstSize_tooSmall
85
+ ZSTD_error_frameParameter_unsupported
86
+ ZSTD_error_frameParameter_windowTooLarge
87
+ ZSTD_error_init_missing
88
+ ZSTD_error_maxSymbolValue_tooLarge
89
+ ZSTD_error_maxSymbolValue_tooSmall
90
+ ZSTD_error_memory_allocation
91
+ ZSTD_error_parameter_outOfBound
92
+ ZSTD_error_parameter_unsupported
93
+ ZSTD_error_prefix_unknown
94
+ ZSTD_error_srcSize_wrong
95
+ ZSTD_error_stage_wrong
96
+ ZSTD_error_tableLog_tooLarge
97
+ ZSTD_error_version_unsupported
98
+ ZSTD_error_workSpace_tooSmall
99
+ ],
100
+ :types => %w[ZSTD_ErrorCode]
101
+ )
32
102
 
33
103
  def require_library(name, functions)
34
104
  functions.each do |function|
@@ -39,26 +109,29 @@ end
39
109
  require_library(
40
110
  "zstd",
41
111
  %w[
42
- ZSTD_isError
43
- ZSTD_getErrorCode
44
- ZSTD_createCCtx
45
- ZSTD_createDCtx
46
- ZSTD_freeCCtx
47
- ZSTD_freeDCtx
112
+ ZDICT_getDictID
113
+ ZDICT_getDictHeaderSize
114
+ ZDICT_isError
115
+ ZDICT_trainFromBuffer
116
+ ZSTD_CCtx_loadDictionary
48
117
  ZSTD_CCtx_setParameter
49
- ZSTD_DCtx_setParameter
50
118
  ZSTD_CCtx_setPledgedSrcSize
51
- ZSTD_cParam_getBounds
52
- ZSTD_dParam_getBounds
53
119
  ZSTD_CStreamInSize
54
120
  ZSTD_CStreamOutSize
121
+ ZSTD_compressStream2
122
+ ZSTD_cParam_getBounds
123
+ ZSTD_createCCtx
124
+ ZSTD_createDCtx
125
+ ZSTD_DCtx_setParameter
126
+ ZSTD_DCtx_loadDictionary
55
127
  ZSTD_DStreamInSize
56
128
  ZSTD_DStreamOutSize
57
- ZSTD_compressStream2
58
129
  ZSTD_decompressStream
59
- ZDICT_isError
60
- ZDICT_getDictID
61
- ZDICT_trainFromBuffer
130
+ ZSTD_dParam_getBounds
131
+ ZSTD_freeCCtx
132
+ ZSTD_freeDCtx
133
+ ZSTD_getErrorCode
134
+ ZSTD_isError
62
135
  ]
63
136
  )
64
137
 
@@ -5,8 +5,6 @@
5
5
 
6
6
  #include <zstd.h>
7
7
 
8
- #include "ruby.h"
9
-
10
8
  VALUE zstds_ext_create_string_buffer(VALUE length)
11
9
  {
12
10
  return rb_str_new(NULL, NUM2SIZET(length));
@@ -6,7 +6,6 @@
6
6
  #include <string.h>
7
7
  #include <zdict.h>
8
8
 
9
- #include "ruby.h"
10
9
  #include "zstds_ext/buffer.h"
11
10
  #include "zstds_ext/error.h"
12
11
  #include "zstds_ext/gvl.h"
@@ -154,6 +153,16 @@ VALUE zstds_ext_get_dictionary_buffer_id(VALUE ZSTDS_EXT_UNUSED(self), VALUE buf
154
153
  return UINT2NUM(id);
155
154
  }
156
155
 
156
+ VALUE zstds_ext_get_dictionary_header_size(VALUE ZSTDS_EXT_UNUSED(self), VALUE buffer)
157
+ {
158
+ zstds_result_t result = ZDICT_getDictHeaderSize(RSTRING_PTR(buffer), RSTRING_LEN(buffer));
159
+ if (ZDICT_isError(result)) {
160
+ zstds_ext_raise_error(zstds_ext_get_error(ZSTD_getErrorCode(result)));
161
+ }
162
+
163
+ return SIZET2NUM(result);
164
+ }
165
+
157
166
  // -- exports --
158
167
 
159
168
  void zstds_ext_dictionary_exports(VALUE root_module)
@@ -161,5 +170,6 @@ void zstds_ext_dictionary_exports(VALUE root_module)
161
170
  VALUE dictionary = rb_define_class_under(root_module, "Dictionary", rb_cObject);
162
171
 
163
172
  rb_define_singleton_method(dictionary, "get_buffer_id", zstds_ext_get_dictionary_buffer_id, 1);
173
+ rb_define_singleton_method(dictionary, "get_header_size", zstds_ext_get_dictionary_header_size, 1);
164
174
  rb_define_singleton_method(dictionary, "train_buffer", zstds_ext_train_dictionary_buffer, 2);
165
175
  }
@@ -3,10 +3,6 @@
3
3
 
4
4
  #include "zstds_ext/error.h"
5
5
 
6
- #include <zstd_errors.h>
7
-
8
- #include "ruby.h"
9
-
10
6
  zstds_ext_result_t zstds_ext_get_error(ZSTD_ErrorCode error_code)
11
7
  {
12
8
  switch (error_code) {
data/ext/zstds_ext/io.c CHANGED
@@ -7,7 +7,6 @@
7
7
  #include <string.h>
8
8
  #include <zstd.h>
9
9
 
10
- #include "ruby.h"
11
10
  #include "ruby/io.h"
12
11
  #include "zstds_ext/error.h"
13
12
  #include "zstds_ext/gvl.h"
data/ext/zstds_ext/main.c CHANGED
@@ -1,7 +1,6 @@
1
1
  // Ruby bindings for zstd library.
2
2
  // Copyright (c) 2019 AUTHORS, MIT License.
3
3
 
4
- #include "ruby.h"
5
4
  #include "zstds_ext/buffer.h"
6
5
  #include "zstds_ext/dictionary.h"
7
6
  #include "zstds_ext/io.h"
@@ -21,4 +20,7 @@ void Init_zstds_ext()
21
20
  zstds_ext_compressor_exports(root_module);
22
21
  zstds_ext_decompressor_exports(root_module);
23
22
  zstds_ext_string_exports(root_module);
23
+
24
+ VALUE version = rb_str_new2(ZSTD_VERSION_STRING);
25
+ rb_define_const(root_module, "LIBRARY_VERSION", rb_obj_freeze(version));
24
26
  }
@@ -3,9 +3,6 @@
3
3
 
4
4
  #include "zstds_ext/option.h"
5
5
 
6
- #include <zstd.h>
7
-
8
- #include "ruby.h"
9
6
  #include "zstds_ext/dictionary.h"
10
7
  #include "zstds_ext/error.h"
11
8
 
@@ -3,9 +3,6 @@
3
3
 
4
4
  #include "zstds_ext/stream/compressor.h"
5
5
 
6
- #include <zstd.h>
7
-
8
- #include "ruby.h"
9
6
  #include "zstds_ext/error.h"
10
7
  #include "zstds_ext/gvl.h"
11
8
  #include "zstds_ext/option.h"
@@ -3,9 +3,6 @@
3
3
 
4
4
  #include "zstds_ext/stream/decompressor.h"
5
5
 
6
- #include <zstd.h>
7
-
8
- #include "ruby.h"
9
6
  #include "zstds_ext/error.h"
10
7
  #include "zstds_ext/gvl.h"
11
8
  #include "zstds_ext/option.h"
@@ -5,7 +5,6 @@
5
5
 
6
6
  #include <zstd.h>
7
7
 
8
- #include "ruby.h"
9
8
  #include "zstds_ext/buffer.h"
10
9
  #include "zstds_ext/error.h"
11
10
  #include "zstds_ext/gvl.h"
@@ -23,10 +23,6 @@ module ZSTDS
23
23
  @buffer = buffer
24
24
  end
25
25
 
26
- def id
27
- self.class.get_buffer_id @buffer
28
- end
29
-
30
26
  def self.train(samples, options = {})
31
27
  Validation.validate_array samples
32
28
 
@@ -45,5 +41,13 @@ module ZSTDS
45
41
  buffer = train_buffer samples, options
46
42
  new buffer
47
43
  end
44
+
45
+ def id
46
+ self.class.get_buffer_id @buffer
47
+ end
48
+
49
+ def header_size
50
+ self.class.get_header_size @buffer
51
+ end
48
52
  end
49
53
  end
data/lib/zstds/version.rb CHANGED
@@ -2,5 +2,5 @@
2
2
  # Copyright (c) 2019 AUTHORS, MIT License.
3
3
 
4
4
  module ZSTDS
5
- VERSION = "1.1.1".freeze
5
+ VERSION = "1.2.0".freeze
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-zstds
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Aladjev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-06-04 00:00:00.000000000 Z
11
+ date: 2021-09-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: codecov
@@ -72,14 +72,14 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '1.3'
75
+ version: '1.4'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '1.3'
82
+ version: '1.4'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: parallel
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -128,28 +128,28 @@ dependencies:
128
128
  requirements:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: '1.16'
131
+ version: '1.22'
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: '1.16'
138
+ version: '1.22'
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: rubocop-minitest
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: '0.12'
145
+ version: '0.15'
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: '0.12'
152
+ version: '0.15'
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: rubocop-performance
155
155
  requirement: !ruby/object:Gem::Requirement
@@ -170,14 +170,14 @@ dependencies:
170
170
  requirements:
171
171
  - - "~>"
172
172
  - !ruby/object:Gem::Version
173
- version: '0.5'
173
+ version: '0.6'
174
174
  type: :development
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
178
  - - "~>"
179
179
  - !ruby/object:Gem::Version
180
- version: '0.5'
180
+ version: '0.6'
181
181
  - !ruby/object:Gem::Dependency
182
182
  name: simplecov
183
183
  requirement: !ruby/object:Gem::Requirement
@@ -260,7 +260,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
260
260
  - !ruby/object:Gem::Version
261
261
  version: '0'
262
262
  requirements: []
263
- rubygems_version: 3.2.15
263
+ rubygems_version: 3.2.22
264
264
  signing_key:
265
265
  specification_version: 4
266
266
  summary: Ruby bindings for zstd library.