ruby-zstds 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +7 -0
  2. data/AUTHORS +1 -0
  3. data/LICENSE +21 -0
  4. data/README.md +498 -0
  5. data/ext/extconf.rb +82 -0
  6. data/ext/zstds_ext/buffer.c +30 -0
  7. data/ext/zstds_ext/buffer.h +23 -0
  8. data/ext/zstds_ext/common.h +16 -0
  9. data/ext/zstds_ext/dictionary.c +106 -0
  10. data/ext/zstds_ext/dictionary.h +16 -0
  11. data/ext/zstds_ext/error.c +81 -0
  12. data/ext/zstds_ext/error.h +35 -0
  13. data/ext/zstds_ext/io.c +512 -0
  14. data/ext/zstds_ext/io.h +14 -0
  15. data/ext/zstds_ext/macro.h +13 -0
  16. data/ext/zstds_ext/main.c +25 -0
  17. data/ext/zstds_ext/option.c +287 -0
  18. data/ext/zstds_ext/option.h +122 -0
  19. data/ext/zstds_ext/stream/compressor.c +241 -0
  20. data/ext/zstds_ext/stream/compressor.h +31 -0
  21. data/ext/zstds_ext/stream/decompressor.c +183 -0
  22. data/ext/zstds_ext/stream/decompressor.h +29 -0
  23. data/ext/zstds_ext/string.c +254 -0
  24. data/ext/zstds_ext/string.h +14 -0
  25. data/lib/zstds.rb +9 -0
  26. data/lib/zstds/dictionary.rb +47 -0
  27. data/lib/zstds/error.rb +22 -0
  28. data/lib/zstds/file.rb +46 -0
  29. data/lib/zstds/option.rb +194 -0
  30. data/lib/zstds/stream/abstract.rb +153 -0
  31. data/lib/zstds/stream/delegates.rb +36 -0
  32. data/lib/zstds/stream/raw/abstract.rb +55 -0
  33. data/lib/zstds/stream/raw/compressor.rb +101 -0
  34. data/lib/zstds/stream/raw/decompressor.rb +70 -0
  35. data/lib/zstds/stream/reader.rb +166 -0
  36. data/lib/zstds/stream/reader_helpers.rb +192 -0
  37. data/lib/zstds/stream/stat.rb +78 -0
  38. data/lib/zstds/stream/writer.rb +145 -0
  39. data/lib/zstds/stream/writer_helpers.rb +93 -0
  40. data/lib/zstds/string.rb +31 -0
  41. data/lib/zstds/validation.rb +48 -0
  42. data/lib/zstds/version.rb +6 -0
  43. metadata +182 -0
@@ -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
@@ -0,0 +1,6 @@
1
+ # Ruby bindings for zstd library.
2
+ # Copyright (c) 2019 AUTHORS, MIT License.
3
+
4
+ module ZSTDS
5
+ VERSION = "1.0.0".freeze
6
+ 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: []