dry-validation-rust 0.1.0.pre5 → 0.1.0.pre6
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 +4 -4
- data/.gitignore +13 -0
- data/.markdownlint.yml +9 -0
- data/.rubocop.yml +124 -0
- data/.ruby-version +1 -0
- data/.tool-versions +1 -0
- data/.yardopts +4 -0
- data/AGENTS.md +376 -0
- data/CHANGELOG.md +71 -0
- data/CODE_OF_CONDUCT.md +42 -0
- data/CONTRIBUTING.md +159 -0
- data/Cargo.lock +809 -0
- data/Cargo.toml +10 -0
- data/GOVERNANCE.md +68 -0
- data/Gemfile +15 -0
- data/Gemfile.lock +132 -0
- data/NOTICE.md +5 -5
- data/README.md +206 -181
- data/Rakefile +350 -0
- data/SECURITY.md +98 -0
- data/SECURITY_AUDIT.md +33 -0
- data/SUMMARY.md +30 -0
- data/SUPPORT.md +67 -0
- data/book.toml +9 -0
- data/codecov.yml +11 -0
- data/compatibility.yml +453 -0
- data/deny.toml +7 -0
- data/dry-validation-rust.gemspec +21 -23
- data/ext/dry_validation_rust/Cargo.toml +7 -7
- data/ext/dry_validation_rust/build.rs +5 -0
- data/ext/dry_validation_rust/extconf.rb +12 -0
- data/ext/dry_validation_rust/fuzz/.gitignore +5 -0
- data/ext/dry_validation_rust/fuzz/Cargo.toml +19 -0
- data/ext/dry_validation_rust/fuzz/corpus/parse_plan/basic_params.json +1 -0
- data/ext/dry_validation_rust/fuzz/fuzz_targets/parse_plan.rs +9 -0
- data/lib/dry/validation/rust/path_trie.rb +15 -8
- data/lib/dry/validation/rust/schema/dsl.rb +8 -0
- data/lib/dry/validation/rust/schema/field_definition.rb +3 -1
- data/lib/dry/validation/rust/schema/predicate_block.rb +2 -1
- data/lib/dry/validation/rust/schema/ruby_type_processor.rb +38 -23
- data/lib/dry/validation/rust/version.rb +1 -1
- data/supply-chain/audits.toml +4 -0
- data/supply-chain/config.toml +368 -0
- data/supply-chain/imports.lock +4 -0
- data/support_matrix.yml +9 -0
- metadata +64 -25
- data/docs/ARCHITECTURE.md +0 -256
- data/docs/COMPATIBILITY.md +0 -198
- data/docs/FEASIBILITY.md +0 -207
- data/docs/SUPPORT_MATRIX.md +0 -66
- data/docs/VERIFICATION.md +0 -128
data/Cargo.toml
ADDED
data/GOVERNANCE.md
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# Governance
|
|
2
|
+
|
|
3
|
+
## Project status and maintainer
|
|
4
|
+
|
|
5
|
+
`dry-validation-rust` is an independent, single-maintainer project. Alexey
|
|
6
|
+
Tomilov is the current maintainer and has final responsibility for technical
|
|
7
|
+
direction, merges, releases, security advisories, and repository
|
|
8
|
+
administration.
|
|
9
|
+
|
|
10
|
+
This governance model describes the current project; it does not imply a
|
|
11
|
+
foundation, steering committee, or multi-maintainer organization.
|
|
12
|
+
|
|
13
|
+
## Decision making
|
|
14
|
+
|
|
15
|
+
Routine changes are decided through issue and pull-request discussion. The
|
|
16
|
+
maintainer considers correctness, compatibility evidence, FFI safety,
|
|
17
|
+
maintenance cost, performance evidence, and alignment with the documented
|
|
18
|
+
product scope.
|
|
19
|
+
|
|
20
|
+
When consensus is not reached, the maintainer makes the final decision and
|
|
21
|
+
records material tradeoffs in the issue, pull request, architecture
|
|
22
|
+
documentation, or changelog as appropriate.
|
|
23
|
+
|
|
24
|
+
## Compatibility philosophy
|
|
25
|
+
|
|
26
|
+
`Dry::Validation::Rust::Contract` is the primary supported API. Familiar
|
|
27
|
+
dry-validation-style behavior is supported only where it is documented and
|
|
28
|
+
tested against pinned upstream releases. Exact compatibility mode remains
|
|
29
|
+
experimental and process-isolated from upstream gems.
|
|
30
|
+
|
|
31
|
+
Unsupported behavior must fail loudly. Compatibility claims require executable
|
|
32
|
+
evidence; performance claims require reproducible measurements. The project
|
|
33
|
+
will not silently widen its supported DSL or weaken tests to hide a mismatch.
|
|
34
|
+
|
|
35
|
+
## Breaking changes
|
|
36
|
+
|
|
37
|
+
Breaking changes should start with a public issue describing the affected
|
|
38
|
+
surface, migration path, compatibility evidence, and release impact. During
|
|
39
|
+
the alpha period, breaking changes may occur in prereleases, but they must be
|
|
40
|
+
intentional and documented.
|
|
41
|
+
|
|
42
|
+
Once a stable line exists, its deprecation and support policy will be defined
|
|
43
|
+
before release. This file does not create a stability promise beyond the
|
|
44
|
+
current support matrix.
|
|
45
|
+
|
|
46
|
+
## Branches and releases
|
|
47
|
+
|
|
48
|
+
`main` is the default and release branch. `develop` is currently the active
|
|
49
|
+
integration branch, with short-lived feature branches merged through pull
|
|
50
|
+
requests. Tested changes are promoted from `develop` to `main`.
|
|
51
|
+
|
|
52
|
+
Only the maintainer may authorize a gem publication, release tag, GitHub
|
|
53
|
+
release, or security advisory. Passing CI does not itself authorize a release.
|
|
54
|
+
|
|
55
|
+
## Adding maintainers
|
|
56
|
+
|
|
57
|
+
Additional maintainers may be invited after sustained, trustworthy
|
|
58
|
+
contributions across code review, compatibility work, security-sensitive
|
|
59
|
+
changes, documentation, and support. Access should be granted incrementally
|
|
60
|
+
and follow least privilege. Any change to release or security authority will
|
|
61
|
+
be documented publicly.
|
|
62
|
+
|
|
63
|
+
## Relationship to dry-rb
|
|
64
|
+
|
|
65
|
+
This project is independent from dry-rb and its maintainers. It is not an
|
|
66
|
+
official dry-rb project, and its compatibility and support statements apply
|
|
67
|
+
only to `dry-validation-rust`. Upstream project names are used to describe the
|
|
68
|
+
API reference and comparison target.
|
data/Gemfile
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
source 'https://rubygems.org'
|
|
4
|
+
gemspec
|
|
5
|
+
gem 'benchmark', '>= 0.3', '< 1.0'
|
|
6
|
+
gem 'benchmark-ips', '~> 2.14'
|
|
7
|
+
gem 'bundler-audit', require: false
|
|
8
|
+
gem 'dry-validation', '1.11.1'
|
|
9
|
+
gem 'memory_profiler', '~> 1.1'
|
|
10
|
+
gem 'rubocop', '>= 1.88.2'
|
|
11
|
+
gem 'rubocop-minitest', require: false
|
|
12
|
+
gem 'rubocop-performance', require: false
|
|
13
|
+
gem 'simplecov', require: false, group: :test
|
|
14
|
+
gem 'simplecov-lcov', require: false, group: :test
|
|
15
|
+
gem 'yard', '~> 0.9', require: false
|
data/Gemfile.lock
ADDED
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: .
|
|
3
|
+
specs:
|
|
4
|
+
dry-validation-rust (0.1.0.pre6)
|
|
5
|
+
bigdecimal (>= 3.1, < 5.0)
|
|
6
|
+
rb_sys (>= 0.9.100, < 0.10)
|
|
7
|
+
|
|
8
|
+
GEM
|
|
9
|
+
remote: https://rubygems.org/
|
|
10
|
+
specs:
|
|
11
|
+
ast (2.4.3)
|
|
12
|
+
benchmark (0.5.0)
|
|
13
|
+
benchmark-ips (2.15.1)
|
|
14
|
+
bigdecimal (4.1.2)
|
|
15
|
+
bundler-audit (0.9.3)
|
|
16
|
+
bundler (>= 1.2.0)
|
|
17
|
+
thor (~> 1.0)
|
|
18
|
+
concurrent-ruby (1.3.7)
|
|
19
|
+
drb (2.2.3)
|
|
20
|
+
dry-configurable (1.4.0)
|
|
21
|
+
dry-core (~> 1.0)
|
|
22
|
+
zeitwerk (~> 2.6)
|
|
23
|
+
dry-core (1.2.0)
|
|
24
|
+
concurrent-ruby (~> 1.0)
|
|
25
|
+
logger
|
|
26
|
+
zeitwerk (~> 2.6)
|
|
27
|
+
dry-inflector (1.3.1)
|
|
28
|
+
dry-initializer (3.2.0)
|
|
29
|
+
dry-logic (1.6.0)
|
|
30
|
+
bigdecimal
|
|
31
|
+
concurrent-ruby (~> 1.0)
|
|
32
|
+
dry-core (~> 1.1)
|
|
33
|
+
zeitwerk (~> 2.6)
|
|
34
|
+
dry-schema (1.16.0)
|
|
35
|
+
concurrent-ruby (~> 1.0)
|
|
36
|
+
dry-configurable (~> 1.0, >= 1.0.1)
|
|
37
|
+
dry-core (~> 1.1)
|
|
38
|
+
dry-initializer (~> 3.2)
|
|
39
|
+
dry-logic (~> 1.6)
|
|
40
|
+
dry-types (~> 1.9, >= 1.9.1)
|
|
41
|
+
zeitwerk (~> 2.6)
|
|
42
|
+
dry-types (1.9.1)
|
|
43
|
+
bigdecimal (>= 3.0)
|
|
44
|
+
concurrent-ruby (~> 1.0)
|
|
45
|
+
dry-core (~> 1.0)
|
|
46
|
+
dry-inflector (~> 1.0)
|
|
47
|
+
dry-logic (~> 1.4)
|
|
48
|
+
zeitwerk (~> 2.6)
|
|
49
|
+
dry-validation (1.11.1)
|
|
50
|
+
concurrent-ruby (~> 1.0)
|
|
51
|
+
dry-core (~> 1.1)
|
|
52
|
+
dry-initializer (~> 3.2)
|
|
53
|
+
dry-schema (~> 1.14)
|
|
54
|
+
zeitwerk (~> 2.6)
|
|
55
|
+
json (2.21.2)
|
|
56
|
+
language_server-protocol (3.17.0.6)
|
|
57
|
+
lint_roller (1.1.0)
|
|
58
|
+
logger (1.7.0)
|
|
59
|
+
memory_profiler (1.1.0)
|
|
60
|
+
minitest (6.0.6)
|
|
61
|
+
drb (~> 2.0)
|
|
62
|
+
prism (~> 1.5)
|
|
63
|
+
parallel (2.1.0)
|
|
64
|
+
parser (3.3.12.0)
|
|
65
|
+
ast (~> 2.4.1)
|
|
66
|
+
racc
|
|
67
|
+
prism (1.9.0)
|
|
68
|
+
racc (1.8.1)
|
|
69
|
+
rainbow (3.1.1)
|
|
70
|
+
rake (13.4.2)
|
|
71
|
+
rake-compiler (1.3.1)
|
|
72
|
+
rake
|
|
73
|
+
rake-compiler-dock (1.12.0)
|
|
74
|
+
rb_sys (0.9.128)
|
|
75
|
+
rake-compiler-dock (= 1.12.0)
|
|
76
|
+
regexp_parser (2.12.0)
|
|
77
|
+
rubocop (1.89.0)
|
|
78
|
+
json (~> 2.3)
|
|
79
|
+
language_server-protocol (~> 3.17.0.2)
|
|
80
|
+
lint_roller (~> 1.1.0)
|
|
81
|
+
parallel (>= 1.10)
|
|
82
|
+
parser (>= 3.3.0.2)
|
|
83
|
+
rainbow (>= 2.2.2, < 4.0)
|
|
84
|
+
regexp_parser (>= 2.9.3, < 3.0)
|
|
85
|
+
rubocop-ast (>= 1.49.0, < 2.0)
|
|
86
|
+
ruby-progressbar (~> 1.7)
|
|
87
|
+
unicode-display_width (>= 2.4.0, < 4.0)
|
|
88
|
+
rubocop-ast (1.50.0)
|
|
89
|
+
parser (>= 3.3.7.2)
|
|
90
|
+
prism (~> 1.7)
|
|
91
|
+
rubocop-minitest (0.40.0)
|
|
92
|
+
lint_roller (~> 1.1)
|
|
93
|
+
rubocop (>= 1.75.0, < 2.0)
|
|
94
|
+
rubocop-ast (>= 1.38.0, < 2.0)
|
|
95
|
+
rubocop-performance (1.27.0)
|
|
96
|
+
lint_roller (~> 1.1)
|
|
97
|
+
rubocop (>= 1.89.0, < 2.0)
|
|
98
|
+
rubocop-ast (>= 1.47.1, < 2.0)
|
|
99
|
+
ruby-progressbar (1.13.0)
|
|
100
|
+
simplecov (1.1.1)
|
|
101
|
+
simplecov-lcov (0.9.0)
|
|
102
|
+
thor (1.5.0)
|
|
103
|
+
unicode-display_width (3.2.0)
|
|
104
|
+
unicode-emoji (~> 4.1)
|
|
105
|
+
unicode-emoji (4.2.0)
|
|
106
|
+
yard (0.9.45)
|
|
107
|
+
zeitwerk (2.8.2)
|
|
108
|
+
|
|
109
|
+
PLATFORMS
|
|
110
|
+
ruby
|
|
111
|
+
x86_64-linux
|
|
112
|
+
|
|
113
|
+
DEPENDENCIES
|
|
114
|
+
benchmark (>= 0.3, < 1.0)
|
|
115
|
+
benchmark-ips (~> 2.14)
|
|
116
|
+
bundler-audit
|
|
117
|
+
dry-validation (= 1.11.1)
|
|
118
|
+
dry-validation-rust!
|
|
119
|
+
memory_profiler (~> 1.1)
|
|
120
|
+
minitest (~> 6.0)
|
|
121
|
+
rake (~> 13.1)
|
|
122
|
+
rake-compiler (~> 1.3)
|
|
123
|
+
rake-compiler-dock (~> 1.12)
|
|
124
|
+
rubocop (>= 1.88.2)
|
|
125
|
+
rubocop-minitest
|
|
126
|
+
rubocop-performance
|
|
127
|
+
simplecov
|
|
128
|
+
simplecov-lcov
|
|
129
|
+
yard (~> 0.9)
|
|
130
|
+
|
|
131
|
+
BUNDLED WITH
|
|
132
|
+
2.5.22
|
data/NOTICE.md
CHANGED
|
@@ -8,11 +8,11 @@ The public interfaces, documentation, tests, dependency metadata, and
|
|
|
8
8
|
architecture of these MIT-licensed projects were studied:
|
|
9
9
|
|
|
10
10
|
- dry-validation, copyright 2015–2026 Hanakai team:
|
|
11
|
-
https://github.com/dry-rb/dry-validation
|
|
11
|
+
<https://github.com/dry-rb/dry-validation>
|
|
12
12
|
- dry-schema, copyright its contributors:
|
|
13
|
-
https://github.com/dry-rb/dry-schema
|
|
13
|
+
<https://github.com/dry-rb/dry-schema>
|
|
14
14
|
- dry-logic and dry-types:
|
|
15
|
-
https://github.com/dry-rb
|
|
15
|
+
<https://github.com/dry-rb>
|
|
16
16
|
|
|
17
17
|
No upstream implementation source is copied into this project. The compatible
|
|
18
18
|
surface was independently implemented. If future development incorporates
|
|
@@ -21,8 +21,8 @@ must be preserved.
|
|
|
21
21
|
|
|
22
22
|
The native extension uses:
|
|
23
23
|
|
|
24
|
-
- Magnus (MIT): https://github.com/matsadler/magnus
|
|
25
|
-
- rb-sys (MIT OR Apache-2.0): https://github.com/oxidize-rb/rb-sys
|
|
24
|
+
- Magnus (MIT): <https://github.com/matsadler/magnus>
|
|
25
|
+
- rb-sys (MIT OR Apache-2.0): <https://github.com/oxidize-rb/rb-sys>
|
|
26
26
|
- serde and serde_json (MIT OR Apache-2.0)
|
|
27
27
|
|
|
28
28
|
Their complete license texts are distributed by their respective packages.
|