rapidyaml 0.1.3-arm-linux-musl
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/LICENSE +21 -0
- data/ext/rapidyaml/extconf.rb +16 -0
- data/ext/rapidyaml/rapidyaml.cpp +614 -0
- data/ext/rapidyaml/ryml_all.hpp +49587 -0
- data/lib/rapidyaml/3.0/rapidyaml.so +0 -0
- data/lib/rapidyaml/3.1/rapidyaml.so +0 -0
- data/lib/rapidyaml/3.2/rapidyaml.so +0 -0
- data/lib/rapidyaml/3.3/rapidyaml.so +0 -0
- data/lib/rapidyaml/3.4/rapidyaml.so +0 -0
- data/lib/rapidyaml/4.0/rapidyaml.so +0 -0
- data/lib/rapidyaml/core_ext/object.rb +20 -0
- data/lib/rapidyaml/core_ext/yaml.rb +63 -0
- data/lib/rapidyaml/core_ext.rb +17 -0
- data/lib/rapidyaml/version.rb +15 -0
- data/lib/rapidyaml.rb +245 -0
- data/rapidyaml.gemspec +38 -0
- metadata +134 -0
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Object#to_yaml monkey patch for rapidyaml
|
|
2
|
+
#
|
|
3
|
+
# This file extends all Ruby objects with a to_yaml method that uses RapidYAML
|
|
4
|
+
# instead of the standard library's Psych implementation. When loaded via
|
|
5
|
+
# require "rapidyaml/core_ext", existing code calling obj.to_yaml will
|
|
6
|
+
# automatically benefit from rapidyaml's performance without modification.
|
|
7
|
+
#
|
|
8
|
+
# This modifies global behavior by overriding the standard to_yaml method.
|
|
9
|
+
# Use with caution in environments where Psych-specific serialization behavior
|
|
10
|
+
# is expected or where other libraries depend on the original implementation.
|
|
11
|
+
|
|
12
|
+
require 'rapidyaml'
|
|
13
|
+
|
|
14
|
+
class Object
|
|
15
|
+
def to_yaml
|
|
16
|
+
RapidYAML.dump(self)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# Copyright (c) 2026 Durable Programming, LLC. All rights reserved.
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# YAML module monkey patch for rapidyaml
|
|
2
|
+
#
|
|
3
|
+
# This file overrides the standard YAML module methods to delegate to RapidYAML
|
|
4
|
+
# instead of Psych. When loaded via require "rapidyaml/core_ext", existing
|
|
5
|
+
# code using YAML.load, YAML.dump, and related methods will automatically use
|
|
6
|
+
# rapidyaml for improved performance without requiring code changes.
|
|
7
|
+
#
|
|
8
|
+
# The monkey patch preserves the original YAML API signatures while redirecting
|
|
9
|
+
# calls to the corresponding RapidYAML methods. Extra keyword arguments are
|
|
10
|
+
# ignored to maintain compatibility with Psych's extended parameter lists.
|
|
11
|
+
#
|
|
12
|
+
# This modifies global behavior by replacing Ruby's standard YAML implementation.
|
|
13
|
+
# Use with caution in environments where Psych-specific features or behaviors
|
|
14
|
+
# are required by other parts of the application or loaded libraries.
|
|
15
|
+
|
|
16
|
+
require 'yaml'
|
|
17
|
+
require 'rapidyaml'
|
|
18
|
+
|
|
19
|
+
module YAML
|
|
20
|
+
class << self
|
|
21
|
+
def load(yaml, symbolize_names: false, permitted_classes: [], **_)
|
|
22
|
+
RapidYAML.load(yaml, symbolize_names: symbolize_names, permitted_classes: permitted_classes)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def safe_load(yaml, symbolize_names: false, permitted_classes: [], **_)
|
|
26
|
+
RapidYAML.safe_load(yaml, symbolize_names: symbolize_names, permitted_classes: permitted_classes)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def unsafe_load(yaml, symbolize_names: false, permitted_classes: [], **_)
|
|
30
|
+
RapidYAML.unsafe_load(yaml, symbolize_names: symbolize_names, permitted_classes: permitted_classes)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def dump(obj, **)
|
|
34
|
+
RapidYAML.dump(obj)
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def safe_dump(obj, **)
|
|
38
|
+
RapidYAML.safe_dump(obj)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def dump_stream(*objects)
|
|
42
|
+
RapidYAML.dump_stream(*objects)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def load_stream(yaml, symbolize_names: false, permitted_classes: [], **_, &block)
|
|
46
|
+
RapidYAML.load_stream(yaml, symbolize_names: symbolize_names, permitted_classes: permitted_classes, &block)
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def safe_load_stream(yaml, symbolize_names: false, permitted_classes: [], **_, &block)
|
|
50
|
+
RapidYAML.safe_load_stream(yaml, symbolize_names: symbolize_names, permitted_classes: permitted_classes, &block)
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def load_file(path, symbolize_names: false, permitted_classes: [], **_)
|
|
54
|
+
RapidYAML.load_file(path, symbolize_names: symbolize_names, permitted_classes: permitted_classes)
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def unsafe_load_file(path, symbolize_names: false, permitted_classes: [], **_)
|
|
58
|
+
RapidYAML.unsafe_load_file(path, symbolize_names: symbolize_names, permitted_classes: permitted_classes)
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
# Copyright (c) 2026 Durable Programming, LLC. All rights reserved.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Core extension loader for rapidyaml
|
|
2
|
+
#
|
|
3
|
+
# This file provides optional monkey-patching for Ruby's standard YAML interface
|
|
4
|
+
# and Object#to_yaml method. When loaded, it replaces YAML module methods and
|
|
5
|
+
# adds to_yaml to all objects, directing them to use RapidYAML instead of Psych.
|
|
6
|
+
#
|
|
7
|
+
# This allows existing code using YAML.load/dump or obj.to_yaml to transparently
|
|
8
|
+
# benefit from rapidyaml's performance without code changes. Load explicitly with:
|
|
9
|
+
# require "rapidyaml/core_ext"
|
|
10
|
+
#
|
|
11
|
+
# Note: This modifies global behavior. Use with caution in libraries or when
|
|
12
|
+
# Psych-specific features (AST access, custom handlers) are needed elsewhere.
|
|
13
|
+
|
|
14
|
+
require_relative 'core_ext/object'
|
|
15
|
+
require_relative 'core_ext/yaml'
|
|
16
|
+
|
|
17
|
+
# Copyright (c) 2026 Durable Programming, LLC. All rights reserved.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Version constant definition for rapidyaml gem
|
|
2
|
+
#
|
|
3
|
+
# This file defines the VERSION constant for the RapidYAML module, which is used
|
|
4
|
+
# for gem versioning, dependency resolution, and runtime version checks. The version
|
|
5
|
+
# follows semantic versioning (SemVer) format and is referenced by the gemspec,
|
|
6
|
+
# bundler, and other parts of the gem infrastructure.
|
|
7
|
+
#
|
|
8
|
+
# The version is kept in a separate file to allow easy programmatic access and
|
|
9
|
+
# updates during the release process without modifying the main module files.
|
|
10
|
+
|
|
11
|
+
module RapidYAML
|
|
12
|
+
VERSION = '0.1.3'
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# Copyright (c) 2026 Durable Programming, LLC. All rights reserved.
|
data/lib/rapidyaml.rb
ADDED
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
# RapidYAML - Fast YAML parsing and serialization for Ruby
|
|
2
|
+
#
|
|
3
|
+
# This file provides the main Ruby interface for the rapidyaml gem, which wraps
|
|
4
|
+
# the C++ rapidyaml library for high-performance YAML processing. It implements a
|
|
5
|
+
# drop-in replacement API compatible with Psych, including load/dump methods with
|
|
6
|
+
# support for symbolized keys, permitted classes for scalar coercion, and file I/O.
|
|
7
|
+
#
|
|
8
|
+
# The module delegates core parsing and serialization to C extension methods while
|
|
9
|
+
# providing Ruby-side features like scalar coercion (Symbol, Date, Time), key
|
|
10
|
+
# symbolization, and stream processing. All "unsafe" methods are aliased to their
|
|
11
|
+
# safe equivalents since rapidyaml never executes arbitrary Ruby code.
|
|
12
|
+
#
|
|
13
|
+
# Key features:
|
|
14
|
+
# - Psych-compatible API (load, dump, safe_load, etc.)
|
|
15
|
+
# - Scalar type coercion with permitted_classes
|
|
16
|
+
# - Multi-document YAML stream support
|
|
17
|
+
# - File I/O convenience methods
|
|
18
|
+
# - No AST/visitor pattern support (direct object conversion only)
|
|
19
|
+
|
|
20
|
+
require 'psych'
|
|
21
|
+
require 'set'
|
|
22
|
+
require_relative 'rapidyaml/version'
|
|
23
|
+
|
|
24
|
+
begin
|
|
25
|
+
RUBY_VERSION =~ /(\d+\.\d+)/
|
|
26
|
+
require_relative "rapidyaml/#{Regexp.last_match(1)}/rapidyaml"
|
|
27
|
+
rescue LoadError
|
|
28
|
+
require 'rapidyaml/rapidyaml'
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
module RapidYAML
|
|
32
|
+
# Error and SyntaxError are defined in the C extension (Init_rapidyaml).
|
|
33
|
+
# ParseError is kept as an alias for backward compatibility.
|
|
34
|
+
ParseError = SyntaxError
|
|
35
|
+
|
|
36
|
+
# Regex patterns for scalar coercion during load.
|
|
37
|
+
# Only applied when the corresponding class is in permitted_classes.
|
|
38
|
+
DATE_RE = /\A(\d{4})-(\d{2})-(\d{2})\z/
|
|
39
|
+
DATETIME_RE = /\A\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}:\d{2}(?:\.\d+)?(?: ?(?:Z|[+-]\d{2}:?\d{2}))?\z/
|
|
40
|
+
|
|
41
|
+
module_function
|
|
42
|
+
|
|
43
|
+
# Parses a YAML string and returns the corresponding Ruby object.
|
|
44
|
+
#
|
|
45
|
+
# @param yaml [String] YAML-formatted string
|
|
46
|
+
# @param symbolize_names [Boolean] if true, hash keys are returned as symbols
|
|
47
|
+
# @param permitted_classes [Array<Class>] classes allowed for type coercion
|
|
48
|
+
# (supports Symbol, Date, Time)
|
|
49
|
+
# @return [Object] parsed Ruby object
|
|
50
|
+
# @raise [RapidYAML::SyntaxError] if the YAML is invalid
|
|
51
|
+
def load(yaml, symbolize_names: false, permitted_classes: [])
|
|
52
|
+
result = Ext.parse(yaml)
|
|
53
|
+
result = coerce_scalars(result, permitted_classes) unless permitted_classes.empty?
|
|
54
|
+
symbolize_names ? deep_symbolize_keys(result) : result
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
# Alias matching Psych.safe_load; rapidyaml does not execute arbitrary code,
|
|
58
|
+
# so this is equivalent to load for all practical purposes.
|
|
59
|
+
#
|
|
60
|
+
# @param yaml [String] YAML-formatted string
|
|
61
|
+
# @param symbolize_names [Boolean] if true, hash keys are returned as symbols
|
|
62
|
+
# @param permitted_classes [Array<Class>] classes allowed for type coercion
|
|
63
|
+
# @return [Object] parsed Ruby object
|
|
64
|
+
# @raise [RapidYAML::SyntaxError] if the YAML is invalid
|
|
65
|
+
def safe_load(yaml, symbolize_names: false, permitted_classes: [])
|
|
66
|
+
load(yaml, symbolize_names: symbolize_names, permitted_classes: permitted_classes)
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
# Serializes a Ruby object to a YAML string.
|
|
70
|
+
#
|
|
71
|
+
# @param obj [Object] Ruby object to serialize
|
|
72
|
+
# @return [String] YAML representation
|
|
73
|
+
# @raise [RapidYAML::Error] if the object cannot be serialized
|
|
74
|
+
def dump(obj)
|
|
75
|
+
Ext.emit(obj)
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
# Serializes multiple Ruby objects into a multi-document YAML stream.
|
|
79
|
+
#
|
|
80
|
+
# @param objects [Array<Object>] Ruby objects to serialize
|
|
81
|
+
# @return [String] YAML stream with one document per object
|
|
82
|
+
# @raise [RapidYAML::Error] if any object cannot be serialized
|
|
83
|
+
def dump_stream(*objects)
|
|
84
|
+
objects.map do |obj|
|
|
85
|
+
s = dump(obj)
|
|
86
|
+
obj.is_a?(Hash) || obj.is_a?(Array) ? "---\n#{s}" : "--- #{s}"
|
|
87
|
+
end.join
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
# Equivalent to dump; rapidyaml does not serialize arbitrary Ruby objects,
|
|
91
|
+
# so there is no unsafe surface to restrict.
|
|
92
|
+
#
|
|
93
|
+
# @param obj [Object] Ruby object to serialize
|
|
94
|
+
# @return [String] YAML representation
|
|
95
|
+
def safe_dump(obj)
|
|
96
|
+
dump(obj)
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
# Returns the version string of the bundled rapidyaml C++ library.
|
|
100
|
+
# Psych exposes libyaml_version; this is the equivalent for rapidyaml.
|
|
101
|
+
#
|
|
102
|
+
# @return [String] rapidyaml version, e.g. "0.13.0"
|
|
103
|
+
def libyaml_version
|
|
104
|
+
Ext.ryml_version
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
# Parses all YAML documents in a string and yields each as a Ruby object.
|
|
108
|
+
# If no block given, returns an array of all documents.
|
|
109
|
+
#
|
|
110
|
+
# @param yaml [String] YAML-formatted string (may contain multiple documents)
|
|
111
|
+
# @param symbolize_names [Boolean] if true, hash keys are returned as symbols
|
|
112
|
+
# @param permitted_classes [Array<Class>] classes allowed for type coercion
|
|
113
|
+
# @yield [Object] each parsed document
|
|
114
|
+
# @return [Array, nil] array of documents if no block given
|
|
115
|
+
def load_stream(yaml, symbolize_names: false, permitted_classes: [], &block)
|
|
116
|
+
docs = Ext.parse_stream(yaml)
|
|
117
|
+
docs = docs.map { |d| coerce_scalars(d, permitted_classes) } unless permitted_classes.empty?
|
|
118
|
+
docs = docs.map { |d| deep_symbolize_keys(d) } if symbolize_names
|
|
119
|
+
if block
|
|
120
|
+
docs.each(&block)
|
|
121
|
+
nil
|
|
122
|
+
else
|
|
123
|
+
docs
|
|
124
|
+
end
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
# @see load_stream
|
|
128
|
+
def safe_load_stream(yaml, symbolize_names: false, permitted_classes: [], &block)
|
|
129
|
+
load_stream(yaml, symbolize_names: symbolize_names,
|
|
130
|
+
permitted_classes: permitted_classes, &block)
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
# Alias matching Psych.unsafe_load; rapidyaml never executes arbitrary Ruby
|
|
134
|
+
# object tags, so this is equivalent to load.
|
|
135
|
+
#
|
|
136
|
+
# @param yaml [String] YAML-formatted string
|
|
137
|
+
# @param symbolize_names [Boolean] if true, hash keys are returned as symbols
|
|
138
|
+
# @param permitted_classes [Array<Class>] classes allowed for type coercion
|
|
139
|
+
# @return [Object] parsed Ruby object
|
|
140
|
+
def unsafe_load(yaml, symbolize_names: false, permitted_classes: [])
|
|
141
|
+
load(yaml, symbolize_names: symbolize_names, permitted_classes: permitted_classes)
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
# Alias matching Psych.unsafe_load_file; rapidyaml never executes arbitrary
|
|
145
|
+
# Ruby object tags, so this is equivalent to load_file.
|
|
146
|
+
#
|
|
147
|
+
# @param path [String] path to the YAML file
|
|
148
|
+
# @param symbolize_names [Boolean] if true, hash keys are returned as symbols
|
|
149
|
+
# @param permitted_classes [Array<Class>] classes allowed for type coercion
|
|
150
|
+
# @return [Object] parsed Ruby object
|
|
151
|
+
def unsafe_load_file(path, symbolize_names: false, permitted_classes: [])
|
|
152
|
+
load_file(path, symbolize_names: symbolize_names, permitted_classes: permitted_classes)
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
# Parses YAML from a file and returns the corresponding Ruby object.
|
|
156
|
+
#
|
|
157
|
+
# @param path [String] path to the YAML file
|
|
158
|
+
# @param symbolize_names [Boolean] if true, hash keys are returned as symbols
|
|
159
|
+
# @param permitted_classes [Array<Class>] classes allowed for type coercion
|
|
160
|
+
# @return [Object] parsed Ruby object
|
|
161
|
+
# @raise [RapidYAML::SyntaxError] if the YAML is invalid
|
|
162
|
+
# @raise [Errno::ENOENT] if the file does not exist
|
|
163
|
+
def load_file(path, symbolize_names: false, permitted_classes: [])
|
|
164
|
+
load(File.read(path), symbolize_names: symbolize_names,
|
|
165
|
+
permitted_classes: permitted_classes)
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
# Serializes a Ruby object to a YAML file.
|
|
169
|
+
#
|
|
170
|
+
# @param obj [Object] Ruby object to serialize
|
|
171
|
+
# @param path [String] destination file path
|
|
172
|
+
# @return [void]
|
|
173
|
+
# @raise [RapidYAML::Error] if the object cannot be serialized
|
|
174
|
+
def dump_file(obj, path)
|
|
175
|
+
File.write(path, dump(obj))
|
|
176
|
+
end
|
|
177
|
+
|
|
178
|
+
# @api private
|
|
179
|
+
def coerce_scalars(obj, permitted_classes)
|
|
180
|
+
set = permitted_classes.to_set
|
|
181
|
+
permit_symbol = set.include?(Symbol)
|
|
182
|
+
permit_date = set.include?(Date)
|
|
183
|
+
permit_time = set.include?(Time)
|
|
184
|
+
coerce_scalars_inner(obj, permit_symbol, permit_date, permit_time)
|
|
185
|
+
end
|
|
186
|
+
private_class_method :coerce_scalars
|
|
187
|
+
|
|
188
|
+
# @api private
|
|
189
|
+
def coerce_scalars_inner(obj, permit_symbol, permit_date, permit_time)
|
|
190
|
+
case obj
|
|
191
|
+
when Hash
|
|
192
|
+
obj.transform_keys { |k| coerce_scalars_inner(k, permit_symbol, permit_date, permit_time) }
|
|
193
|
+
.transform_values { |v| coerce_scalars_inner(v, permit_symbol, permit_date, permit_time) }
|
|
194
|
+
when Array
|
|
195
|
+
obj.map { |v| coerce_scalars_inner(v, permit_symbol, permit_date, permit_time) }
|
|
196
|
+
when String
|
|
197
|
+
coerce_string(obj, permit_symbol, permit_date, permit_time)
|
|
198
|
+
else
|
|
199
|
+
obj
|
|
200
|
+
end
|
|
201
|
+
end
|
|
202
|
+
private_class_method :coerce_scalars_inner
|
|
203
|
+
|
|
204
|
+
# @api private
|
|
205
|
+
def coerce_string(str, permit_symbol, permit_date, permit_time)
|
|
206
|
+
if permit_symbol && str.start_with?(':')
|
|
207
|
+
name = str[1..]
|
|
208
|
+
return name.empty? ? :"" : name.to_sym
|
|
209
|
+
end
|
|
210
|
+
if permit_time && str =~ DATETIME_RE && str.include?(':')
|
|
211
|
+
begin
|
|
212
|
+
require 'time'
|
|
213
|
+
t = Time.parse(str)
|
|
214
|
+
return t
|
|
215
|
+
rescue ArgumentError
|
|
216
|
+
# fall through
|
|
217
|
+
end
|
|
218
|
+
end
|
|
219
|
+
if permit_date && str =~ DATE_RE
|
|
220
|
+
begin
|
|
221
|
+
require 'date'
|
|
222
|
+
return Date.new(::Regexp.last_match(1).to_i, ::Regexp.last_match(2).to_i, ::Regexp.last_match(3).to_i)
|
|
223
|
+
rescue ArgumentError
|
|
224
|
+
# fall through
|
|
225
|
+
end
|
|
226
|
+
end
|
|
227
|
+
str
|
|
228
|
+
end
|
|
229
|
+
private_class_method :coerce_string
|
|
230
|
+
|
|
231
|
+
# @api private
|
|
232
|
+
def deep_symbolize_keys(obj)
|
|
233
|
+
case obj
|
|
234
|
+
when Hash
|
|
235
|
+
obj.transform_keys(&:to_sym).transform_values { |v| deep_symbolize_keys(v) }
|
|
236
|
+
when Array
|
|
237
|
+
obj.map { |v| deep_symbolize_keys(v) }
|
|
238
|
+
else
|
|
239
|
+
obj
|
|
240
|
+
end
|
|
241
|
+
end
|
|
242
|
+
private_class_method :deep_symbolize_keys
|
|
243
|
+
end
|
|
244
|
+
|
|
245
|
+
# Copyright (c) 2026 Durable Programming, LLC. All rights reserved.
|
data/rapidyaml.gemspec
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'lib/rapidyaml/version'
|
|
4
|
+
|
|
5
|
+
Gem::Specification.new do |spec|
|
|
6
|
+
spec.name = 'rapidyaml'
|
|
7
|
+
spec.version = RapidYAML::VERSION
|
|
8
|
+
spec.authors = ['Durable Programming LLC']
|
|
9
|
+
spec.email = ['commercial@durableprogramming.com']
|
|
10
|
+
spec.summary = 'Fast YAML parsing and emission via rapidyaml — drop-in Psych replacement'
|
|
11
|
+
spec.description = 'Ruby bindings to rapidyaml (ryml), a C++ YAML library. ' \
|
|
12
|
+
'Exposes a Psych-compatible API so it can be used as a drop-in replacement.'
|
|
13
|
+
spec.homepage = 'https://github.com/durable-oss/rapidyaml'
|
|
14
|
+
spec.license = 'MIT'
|
|
15
|
+
spec.required_ruby_version = '>= 3.1.0'
|
|
16
|
+
|
|
17
|
+
spec.metadata = {
|
|
18
|
+
'homepage_uri' => spec.homepage,
|
|
19
|
+
'source_code_uri' => spec.homepage,
|
|
20
|
+
'changelog_uri' => "#{spec.homepage}/blob/main/CHANGELOG.md",
|
|
21
|
+
'rubygems_mfa_required' => 'true'
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
spec.files = Dir[
|
|
25
|
+
'lib/**/*',
|
|
26
|
+
'ext/**/*',
|
|
27
|
+
'LICENSE',
|
|
28
|
+
'rapidyaml.gemspec'
|
|
29
|
+
].reject { |f| File.directory?(f) }
|
|
30
|
+
|
|
31
|
+
spec.extensions = ['ext/rapidyaml/extconf.rb']
|
|
32
|
+
|
|
33
|
+
spec.add_development_dependency 'minitest', '~> 5.0'
|
|
34
|
+
spec.add_development_dependency 'rake', '~> 13.0'
|
|
35
|
+
spec.add_development_dependency 'rake-compiler', '~> 1.2'
|
|
36
|
+
spec.add_development_dependency 'rake-compiler-dock', '~> 1.4'
|
|
37
|
+
spec.add_development_dependency 'rice', '~> 4.0'
|
|
38
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: rapidyaml
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.3
|
|
5
|
+
platform: arm-linux-musl
|
|
6
|
+
authors:
|
|
7
|
+
- Durable Programming LLC
|
|
8
|
+
bindir: bin
|
|
9
|
+
cert_chain: []
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
|
+
dependencies:
|
|
12
|
+
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: minitest
|
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
|
15
|
+
requirements:
|
|
16
|
+
- - "~>"
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: '5.0'
|
|
19
|
+
type: :development
|
|
20
|
+
prerelease: false
|
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
+
requirements:
|
|
23
|
+
- - "~>"
|
|
24
|
+
- !ruby/object:Gem::Version
|
|
25
|
+
version: '5.0'
|
|
26
|
+
- !ruby/object:Gem::Dependency
|
|
27
|
+
name: rake
|
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
|
29
|
+
requirements:
|
|
30
|
+
- - "~>"
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '13.0'
|
|
33
|
+
type: :development
|
|
34
|
+
prerelease: false
|
|
35
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - "~>"
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: '13.0'
|
|
40
|
+
- !ruby/object:Gem::Dependency
|
|
41
|
+
name: rake-compiler
|
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
|
43
|
+
requirements:
|
|
44
|
+
- - "~>"
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: '1.2'
|
|
47
|
+
type: :development
|
|
48
|
+
prerelease: false
|
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
50
|
+
requirements:
|
|
51
|
+
- - "~>"
|
|
52
|
+
- !ruby/object:Gem::Version
|
|
53
|
+
version: '1.2'
|
|
54
|
+
- !ruby/object:Gem::Dependency
|
|
55
|
+
name: rake-compiler-dock
|
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
|
57
|
+
requirements:
|
|
58
|
+
- - "~>"
|
|
59
|
+
- !ruby/object:Gem::Version
|
|
60
|
+
version: '1.4'
|
|
61
|
+
type: :development
|
|
62
|
+
prerelease: false
|
|
63
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
64
|
+
requirements:
|
|
65
|
+
- - "~>"
|
|
66
|
+
- !ruby/object:Gem::Version
|
|
67
|
+
version: '1.4'
|
|
68
|
+
- !ruby/object:Gem::Dependency
|
|
69
|
+
name: rice
|
|
70
|
+
requirement: !ruby/object:Gem::Requirement
|
|
71
|
+
requirements:
|
|
72
|
+
- - "~>"
|
|
73
|
+
- !ruby/object:Gem::Version
|
|
74
|
+
version: '4.0'
|
|
75
|
+
type: :development
|
|
76
|
+
prerelease: false
|
|
77
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
78
|
+
requirements:
|
|
79
|
+
- - "~>"
|
|
80
|
+
- !ruby/object:Gem::Version
|
|
81
|
+
version: '4.0'
|
|
82
|
+
description: Ruby bindings to rapidyaml (ryml), a C++ YAML library. Exposes a Psych-compatible
|
|
83
|
+
API so it can be used as a drop-in replacement.
|
|
84
|
+
email:
|
|
85
|
+
- commercial@durableprogramming.com
|
|
86
|
+
executables: []
|
|
87
|
+
extensions: []
|
|
88
|
+
extra_rdoc_files: []
|
|
89
|
+
files:
|
|
90
|
+
- LICENSE
|
|
91
|
+
- ext/rapidyaml/extconf.rb
|
|
92
|
+
- ext/rapidyaml/rapidyaml.cpp
|
|
93
|
+
- ext/rapidyaml/ryml_all.hpp
|
|
94
|
+
- lib/rapidyaml.rb
|
|
95
|
+
- lib/rapidyaml/3.0/rapidyaml.so
|
|
96
|
+
- lib/rapidyaml/3.1/rapidyaml.so
|
|
97
|
+
- lib/rapidyaml/3.2/rapidyaml.so
|
|
98
|
+
- lib/rapidyaml/3.3/rapidyaml.so
|
|
99
|
+
- lib/rapidyaml/3.4/rapidyaml.so
|
|
100
|
+
- lib/rapidyaml/4.0/rapidyaml.so
|
|
101
|
+
- lib/rapidyaml/core_ext.rb
|
|
102
|
+
- lib/rapidyaml/core_ext/object.rb
|
|
103
|
+
- lib/rapidyaml/core_ext/yaml.rb
|
|
104
|
+
- lib/rapidyaml/version.rb
|
|
105
|
+
- rapidyaml.gemspec
|
|
106
|
+
homepage: https://github.com/durable-oss/rapidyaml
|
|
107
|
+
licenses:
|
|
108
|
+
- MIT
|
|
109
|
+
metadata:
|
|
110
|
+
homepage_uri: https://github.com/durable-oss/rapidyaml
|
|
111
|
+
source_code_uri: https://github.com/durable-oss/rapidyaml
|
|
112
|
+
changelog_uri: https://github.com/durable-oss/rapidyaml/blob/main/CHANGELOG.md
|
|
113
|
+
rubygems_mfa_required: 'true'
|
|
114
|
+
rdoc_options: []
|
|
115
|
+
require_paths:
|
|
116
|
+
- lib
|
|
117
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
118
|
+
requirements:
|
|
119
|
+
- - ">="
|
|
120
|
+
- !ruby/object:Gem::Version
|
|
121
|
+
version: '3.0'
|
|
122
|
+
- - "<"
|
|
123
|
+
- !ruby/object:Gem::Version
|
|
124
|
+
version: 4.1.dev
|
|
125
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
126
|
+
requirements:
|
|
127
|
+
- - ">="
|
|
128
|
+
- !ruby/object:Gem::Version
|
|
129
|
+
version: 3.3.22
|
|
130
|
+
requirements: []
|
|
131
|
+
rubygems_version: 4.0.6
|
|
132
|
+
specification_version: 4
|
|
133
|
+
summary: Fast YAML parsing and emission via rapidyaml — drop-in Psych replacement
|
|
134
|
+
test_files: []
|