ruby-zstds 1.0.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 +7 -0
- data/AUTHORS +1 -0
- data/LICENSE +21 -0
- data/README.md +498 -0
- data/ext/extconf.rb +82 -0
- data/ext/zstds_ext/buffer.c +30 -0
- data/ext/zstds_ext/buffer.h +23 -0
- data/ext/zstds_ext/common.h +16 -0
- data/ext/zstds_ext/dictionary.c +106 -0
- data/ext/zstds_ext/dictionary.h +16 -0
- data/ext/zstds_ext/error.c +81 -0
- data/ext/zstds_ext/error.h +35 -0
- data/ext/zstds_ext/io.c +512 -0
- data/ext/zstds_ext/io.h +14 -0
- data/ext/zstds_ext/macro.h +13 -0
- data/ext/zstds_ext/main.c +25 -0
- data/ext/zstds_ext/option.c +287 -0
- data/ext/zstds_ext/option.h +122 -0
- data/ext/zstds_ext/stream/compressor.c +241 -0
- data/ext/zstds_ext/stream/compressor.h +31 -0
- data/ext/zstds_ext/stream/decompressor.c +183 -0
- data/ext/zstds_ext/stream/decompressor.h +29 -0
- data/ext/zstds_ext/string.c +254 -0
- data/ext/zstds_ext/string.h +14 -0
- data/lib/zstds.rb +9 -0
- data/lib/zstds/dictionary.rb +47 -0
- data/lib/zstds/error.rb +22 -0
- data/lib/zstds/file.rb +46 -0
- data/lib/zstds/option.rb +194 -0
- data/lib/zstds/stream/abstract.rb +153 -0
- data/lib/zstds/stream/delegates.rb +36 -0
- data/lib/zstds/stream/raw/abstract.rb +55 -0
- data/lib/zstds/stream/raw/compressor.rb +101 -0
- data/lib/zstds/stream/raw/decompressor.rb +70 -0
- data/lib/zstds/stream/reader.rb +166 -0
- data/lib/zstds/stream/reader_helpers.rb +192 -0
- data/lib/zstds/stream/stat.rb +78 -0
- data/lib/zstds/stream/writer.rb +145 -0
- data/lib/zstds/stream/writer_helpers.rb +93 -0
- data/lib/zstds/string.rb +31 -0
- data/lib/zstds/validation.rb +48 -0
- data/lib/zstds/version.rb +6 -0
- metadata +182 -0
data/lib/zstds/string.rb
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
# Ruby bindings for zstd library.
|
2
|
+
# Copyright (c) 2019 AUTHORS, MIT License.
|
3
|
+
|
4
|
+
require "zstds_ext"
|
5
|
+
|
6
|
+
require_relative "option"
|
7
|
+
require_relative "validation"
|
8
|
+
|
9
|
+
module ZSTDS
|
10
|
+
module String
|
11
|
+
BUFFER_LENGTH_NAMES = %i[destination_buffer_length].freeze
|
12
|
+
|
13
|
+
def self.compress(source, options = {})
|
14
|
+
Validation.validate_string source
|
15
|
+
|
16
|
+
options = Option.get_compressor_options options, BUFFER_LENGTH_NAMES
|
17
|
+
|
18
|
+
options[:pledged_size] = source.bytesize
|
19
|
+
|
20
|
+
ZSTDS._native_compress_string source, options
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.decompress(source, options = {})
|
24
|
+
Validation.validate_string source
|
25
|
+
|
26
|
+
options = Option.get_decompressor_options options, BUFFER_LENGTH_NAMES
|
27
|
+
|
28
|
+
ZSTDS._native_decompress_string source, options
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# Ruby bindings for zstd library.
|
2
|
+
# Copyright (c) 2019 AUTHORS, MIT License.
|
3
|
+
|
4
|
+
require_relative "error"
|
5
|
+
|
6
|
+
module ZSTDS
|
7
|
+
module Validation
|
8
|
+
def self.validate_bool(value)
|
9
|
+
raise ValidateError, "invalid bool" unless value.is_a?(::TrueClass) || value.is_a?(::FalseClass)
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.validate_integer(value)
|
13
|
+
raise ValidateError, "invalid integer" unless value.is_a? ::Integer
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.validate_positive_integer(value)
|
17
|
+
raise ValidateError, "invalid positive integer" unless value.is_a?(::Integer) && value > 0
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.validate_not_negative_integer(value)
|
21
|
+
raise ValidateError, "invalid not negative integer" unless value.is_a?(::Integer) && value >= 0
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.validate_string(value)
|
25
|
+
raise ValidateError, "invalid string" unless value.is_a? ::String
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.validate_symbol(value)
|
29
|
+
raise ValidateError, "invalid symbol" unless value.is_a? ::Symbol
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.validate_io(value)
|
33
|
+
raise ValidateError, "invalid io" unless value.is_a? ::IO
|
34
|
+
end
|
35
|
+
|
36
|
+
def self.validate_array(value)
|
37
|
+
raise ValidateError, "invalid array" unless value.is_a? ::Array
|
38
|
+
end
|
39
|
+
|
40
|
+
def self.validate_hash(value)
|
41
|
+
raise ValidateError, "invalid hash" unless value.is_a? ::Hash
|
42
|
+
end
|
43
|
+
|
44
|
+
def self.validate_proc(value)
|
45
|
+
raise ValidateError, "invalid proc" unless value.is_a?(::Proc) || value.is_a?(::Method) || value.is_a?(::UnboundMethod)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
metadata
ADDED
@@ -0,0 +1,182 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ruby-zstds
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Andrew Aladjev
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2019-11-13 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: minitar
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0.9'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0.9'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: minitest
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '5.12'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '5.12'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: ocg
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '1.1'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.1'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rake-compiler
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '1.0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '1.0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rubocop
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0.75'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0.75'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rubocop-performance
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '1.5'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '1.5'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rubocop-rails
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '2.3'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '2.3'
|
111
|
+
description:
|
112
|
+
email: aladjev.andrew@gmail.com
|
113
|
+
executables: []
|
114
|
+
extensions:
|
115
|
+
- ext/extconf.rb
|
116
|
+
extra_rdoc_files: []
|
117
|
+
files:
|
118
|
+
- AUTHORS
|
119
|
+
- LICENSE
|
120
|
+
- README.md
|
121
|
+
- ext/extconf.rb
|
122
|
+
- ext/zstds_ext/buffer.c
|
123
|
+
- ext/zstds_ext/buffer.h
|
124
|
+
- ext/zstds_ext/common.h
|
125
|
+
- ext/zstds_ext/dictionary.c
|
126
|
+
- ext/zstds_ext/dictionary.h
|
127
|
+
- ext/zstds_ext/error.c
|
128
|
+
- ext/zstds_ext/error.h
|
129
|
+
- ext/zstds_ext/io.c
|
130
|
+
- ext/zstds_ext/io.h
|
131
|
+
- ext/zstds_ext/macro.h
|
132
|
+
- ext/zstds_ext/main.c
|
133
|
+
- ext/zstds_ext/option.c
|
134
|
+
- ext/zstds_ext/option.h
|
135
|
+
- ext/zstds_ext/stream/compressor.c
|
136
|
+
- ext/zstds_ext/stream/compressor.h
|
137
|
+
- ext/zstds_ext/stream/decompressor.c
|
138
|
+
- ext/zstds_ext/stream/decompressor.h
|
139
|
+
- ext/zstds_ext/string.c
|
140
|
+
- ext/zstds_ext/string.h
|
141
|
+
- lib/zstds.rb
|
142
|
+
- lib/zstds/dictionary.rb
|
143
|
+
- lib/zstds/error.rb
|
144
|
+
- lib/zstds/file.rb
|
145
|
+
- lib/zstds/option.rb
|
146
|
+
- lib/zstds/stream/abstract.rb
|
147
|
+
- lib/zstds/stream/delegates.rb
|
148
|
+
- lib/zstds/stream/raw/abstract.rb
|
149
|
+
- lib/zstds/stream/raw/compressor.rb
|
150
|
+
- lib/zstds/stream/raw/decompressor.rb
|
151
|
+
- lib/zstds/stream/reader.rb
|
152
|
+
- lib/zstds/stream/reader_helpers.rb
|
153
|
+
- lib/zstds/stream/stat.rb
|
154
|
+
- lib/zstds/stream/writer.rb
|
155
|
+
- lib/zstds/stream/writer_helpers.rb
|
156
|
+
- lib/zstds/string.rb
|
157
|
+
- lib/zstds/validation.rb
|
158
|
+
- lib/zstds/version.rb
|
159
|
+
homepage: https://github.com/andrew-aladev/ruby-zstds
|
160
|
+
licenses:
|
161
|
+
- MIT
|
162
|
+
metadata: {}
|
163
|
+
post_install_message:
|
164
|
+
rdoc_options: []
|
165
|
+
require_paths:
|
166
|
+
- lib
|
167
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
168
|
+
requirements:
|
169
|
+
- - ">="
|
170
|
+
- !ruby/object:Gem::Version
|
171
|
+
version: '0'
|
172
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
173
|
+
requirements:
|
174
|
+
- - ">="
|
175
|
+
- !ruby/object:Gem::Version
|
176
|
+
version: '0'
|
177
|
+
requirements: []
|
178
|
+
rubygems_version: 3.0.6
|
179
|
+
signing_key:
|
180
|
+
specification_version: 4
|
181
|
+
summary: Ruby bindings for zstd library.
|
182
|
+
test_files: []
|