jsonschema_rs 0.52.0 → 0.53.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: 60286fc7bf517866e7429a90e42fa4505ea769ba9728c1d03fcd1dafe2ff63ce
4
- data.tar.gz: 6aaea36a12a38414cac3ec8af674b2b944cfd451dcf682488525f62fe12ee98e
3
+ metadata.gz: fed2ed63bd89b16e2aad0bfd950e18ce4382d696d4dcf370be1edbf1514da84c
4
+ data.tar.gz: 7a091bde575c3c227cb0cdc007814df574cdb313161ce444acc2722137a37283
5
5
  SHA512:
6
- metadata.gz: bb0c6f0d5db65db03bc05d11cd636d8fc37b9b61a33b3674da032de2ec1a31df43f595bc9c16964bace627362a699fb032e0d90f459d81a0f68222eb6e251f5d
7
- data.tar.gz: 03a44cfe94869f6ccf039205ee42eedddf84cd11005b44f3d0b9db75efdaf2c63166a82d71332fc65e03cb41a959355737bbff7a9750c99a50ec061d0112ef1e
6
+ metadata.gz: 488b7f23d40971e9a03bab4601df0ed4028a3d5b235dbc1108cd1efb3a8e579ef34c851d1dd44545ba138767e96c5930b0e6eb905b1b481d6cb30f11a44058eb
7
+ data.tar.gz: b4d2fd08e257daef457e177ca39e0cd888618fdac88de6d4f723ff05e34ffd32581b9b0aada6230bbbed530f2a929a4808f3491e4d9d1560cd5542171153b142
data/CHANGELOG.md CHANGED
@@ -2,6 +2,31 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.53.0] - 2026-09-02
6
+
7
+ ### Fixed
8
+
9
+ - Draft 4 `type: integer` matching a `Float` or not depending on its formatting; a `Float` is never a draft 4 integer.
10
+ - `uniqueItems` accepting `0` alongside `-0.0` in arrays of more than 15 items.
11
+
12
+ ### Performance
13
+
14
+ - Canonicalizing an `allOf` of object schemas walks their property maps once instead of looking every key up.
15
+ - `properties` and `required` compare short names without `memcmp`.
16
+ - Draft 4 `type: integer` is up to 6x faster on float-heavy instances.
17
+ - `evaluate` renders each node's locations once instead of rebuilding them.
18
+ - Building a schema resolves each `$ref` target once instead of per reference site.
19
+ - Building a schema with an `$id` encodes each absolute location once instead of re-validating it.
20
+ - `enum` listing strings or integers, with or without `null`, matches against a set instead of comparing each candidate.
21
+
22
+ ## [0.52.1] - 2026-08-30
23
+
24
+ ### Performance
25
+
26
+ - `minLength` and `maxLength` together now scan the string once.
27
+ - `unevaluatedProperties` is up to 2.9x faster.
28
+ - `evaluate` is up to 27% faster on reference-heavy schemas.
29
+
5
30
  ## [0.52.0] - 2026-08-27
6
31
 
7
32
  ### Added
@@ -479,7 +504,9 @@
479
504
 
480
505
  - Initial public release
481
506
 
482
- [Unreleased]: https://github.com/Stranger6667/jsonschema/compare/ruby-v0.52.0...HEAD
507
+ [Unreleased]: https://github.com/Stranger6667/jsonschema/compare/ruby-v0.53.0...HEAD
508
+ [0.53.0]: https://github.com/Stranger6667/jsonschema/compare/ruby-v0.52.1...ruby-v0.53.0
509
+ [0.52.1]: https://github.com/Stranger6667/jsonschema/compare/ruby-v0.52.0...ruby-v0.52.1
483
510
  [0.52.0]: https://github.com/Stranger6667/jsonschema/compare/ruby-v0.51.0...ruby-v0.52.0
484
511
  [0.51.0]: https://github.com/Stranger6667/jsonschema/compare/ruby-v0.50.1...ruby-v0.51.0
485
512
  [0.50.1]: https://github.com/Stranger6667/jsonschema/compare/ruby-v0.50.0...ruby-v0.50.1
data/Cargo.toml CHANGED
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "jsonschema-rb"
3
- version = "0.52.0"
3
+ version = "0.53.0"
4
4
  edition = "2021"
5
5
  authors = ["Dmitry Dygalo <dmitry@dygalo.dev>"]
6
6
  license = "MIT"
@@ -14,7 +14,7 @@ crate-type = ["cdylib"]
14
14
 
15
15
  [dependencies]
16
16
  strum = "0.28.0"
17
- jsonschema = { version = "0.52.0", default-features = false, features = ["magnus", "arbitrary-precision", "resolve-http", "resolve-file", "tls-ring", "macros", "idna"] }
17
+ jsonschema = { version = "0.53.0", default-features = false, features = ["magnus", "arbitrary-precision", "resolve-http", "resolve-file", "tls-ring", "macros", "idna"] }
18
18
  magnus = { version = "0.8", features = ["rb-sys"] }
19
19
  rb-sys = "0.9"
20
20
  serde = { workspace = true }
@@ -693,9 +693,9 @@ dependencies = [
693
693
 
694
694
  [[package]]
695
695
  name = "jsonschema"
696
- version = "0.52.0"
696
+ version = "0.53.0"
697
697
  source = "registry+https://github.com/rust-lang/crates.io-index"
698
- checksum = "0ee5867390f14ee43278d8d05d3af5f5314eeccb4684e6049033f2ba4ae3d4ae"
698
+ checksum = "ca2ea2207f8ccb34b6d4d041fe9deb08fff3cbc43750012caa2c3d1e860188e4"
699
699
  dependencies = [
700
700
  "ahash",
701
701
  "bytecount",
@@ -726,9 +726,9 @@ dependencies = [
726
726
 
727
727
  [[package]]
728
728
  name = "jsonschema-macros"
729
- version = "0.52.0"
729
+ version = "0.53.0"
730
730
  source = "registry+https://github.com/rust-lang/crates.io-index"
731
- checksum = "31552147ec28242b841ab069f8ba32b2548d2a3ff7c47b0085078c5bc84c49de"
731
+ checksum = "fca63b539fd065bf6dd1e2250eb8f043d192f1e26871938328677dec94f47891"
732
732
  dependencies = [
733
733
  "jsonschema-macros-core",
734
734
  "proc-macro2",
@@ -736,9 +736,9 @@ dependencies = [
736
736
 
737
737
  [[package]]
738
738
  name = "jsonschema-macros-core"
739
- version = "0.52.0"
739
+ version = "0.53.0"
740
740
  source = "registry+https://github.com/rust-lang/crates.io-index"
741
- checksum = "fbdfa029e60c8f29b8069de429929f33b0da3109ad95f8428728a68bb6f2c0fc"
741
+ checksum = "aa86fa71ef7b974d3081f13900de1c10371c6df55670031e2e123f0aa738c69e"
742
742
  dependencies = [
743
743
  "fancy-regex",
744
744
  "indexmap",
@@ -755,7 +755,7 @@ dependencies = [
755
755
 
756
756
  [[package]]
757
757
  name = "jsonschema-rb-ext"
758
- version = "0.52.0"
758
+ version = "0.53.0"
759
759
  dependencies = [
760
760
  "jsonschema",
761
761
  "magnus",
@@ -769,28 +769,30 @@ dependencies = [
769
769
 
770
770
  [[package]]
771
771
  name = "jsonschema-regex"
772
- version = "0.52.0"
772
+ version = "0.53.0"
773
773
  source = "registry+https://github.com/rust-lang/crates.io-index"
774
- checksum = "1a7bbc0f53dcb425cf3bae539be26b406b7053e6995e34e4b04477091e600044"
774
+ checksum = "5426a01d944d044c9c5e459f603419d1b539358f5496b1041df45a7a86d2d38f"
775
775
  dependencies = [
776
776
  "regex-syntax",
777
777
  ]
778
778
 
779
779
  [[package]]
780
780
  name = "jsonschema-value"
781
- version = "0.52.0"
781
+ version = "0.53.0"
782
782
  source = "registry+https://github.com/rust-lang/crates.io-index"
783
- checksum = "0d3e24abcd5f7eff512eb6bb915ac67772f2e7142ae5b5ac67b4ac75bd417d46"
783
+ checksum = "65b6ec7deaeaab6320efc3084d8a9e91d5b4985ee36ffffef45dbff9516ff7a8"
784
784
  dependencies = [
785
785
  "ahash",
786
786
  "bytecount",
787
787
  "fraction",
788
+ "getrandom 0.3.4",
788
789
  "magnus",
789
790
  "num-bigint",
790
791
  "num-cmp",
791
792
  "num-traits",
792
793
  "rb-sys",
793
794
  "serde_json",
795
+ "zmij",
794
796
  ]
795
797
 
796
798
  [[package]]
@@ -1133,9 +1135,9 @@ dependencies = [
1133
1135
 
1134
1136
  [[package]]
1135
1137
  name = "referencing"
1136
- version = "0.52.0"
1138
+ version = "0.53.0"
1137
1139
  source = "registry+https://github.com/rust-lang/crates.io-index"
1138
- checksum = "b6326ce79629af4702ac033666390011ccc70fe82ffedd62824d061f133bd10b"
1140
+ checksum = "fb406ba984c08d1b91781d7507d103296cf6dec3256c33c388b468957f4b43bb"
1139
1141
  dependencies = [
1140
1142
  "ahash",
1141
1143
  "fluent-uri",
@@ -2131,6 +2133,6 @@ dependencies = [
2131
2133
 
2132
2134
  [[package]]
2133
2135
  name = "zmij"
2134
- version = "1.0.21"
2136
+ version = "1.0.23"
2135
2137
  source = "registry+https://github.com/rust-lang/crates.io-index"
2136
- checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa"
2138
+ checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b"
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "jsonschema-rb-ext"
3
- version = "0.52.0"
3
+ version = "0.53.0"
4
4
  edition = "2021"
5
5
  publish = false
6
6
 
@@ -10,10 +10,10 @@ name = "jsonschema_rb"
10
10
  path = "../../src/lib.rs"
11
11
 
12
12
  [dependencies]
13
- jsonschema = { version = "0.52.0", default-features = false, features = ["magnus", "arbitrary-precision", "resolve-http", "resolve-file", "tls-ring", "macros", "idna"] }
13
+ jsonschema = { version = "0.53.0", default-features = false, features = ["magnus", "arbitrary-precision", "resolve-http", "resolve-file", "tls-ring", "macros", "idna"] }
14
14
  magnus = { version = "0.8", features = ["rb-sys"] }
15
15
  rb-sys = "0.9"
16
- referencing = "0.52.0"
16
+ referencing = "0.53.0"
17
17
  serde = { version = "1", features = ["derive"] }
18
18
  serde_json = { version = "1", features = ["arbitrary_precision"] }
19
19
  strum = "0.28.0"
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module JSONSchema
4
- VERSION = "0.52.0"
4
+ VERSION = "0.53.0"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jsonschema_rs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.52.0
4
+ version: 0.53.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dmitry Dygalo