jsonschema_rs 0.52.1 → 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: a1b985c89ea47ecfdf5bcfce42e1eee6b420bff2bf5bb7a30175f17c75c542c6
4
- data.tar.gz: e59a5c4d4c9ad4643cef049998eae36e24c889c490cb432f11122da9f1fafc71
3
+ metadata.gz: fed2ed63bd89b16e2aad0bfd950e18ce4382d696d4dcf370be1edbf1514da84c
4
+ data.tar.gz: 7a091bde575c3c227cb0cdc007814df574cdb313161ce444acc2722137a37283
5
5
  SHA512:
6
- metadata.gz: 5d44404bfc81af2055756a57e797375750f16a6175726ddbfa6a0f97876362db8135033d510c774e2bb0d06986c425cd19ed7335363a9eacf868e93965b248de
7
- data.tar.gz: 21edaa37efe2a9697c6908bf785e90effaa6112979edced4a614000838f169d53c932b8929a86af9dc9ad0fe41816fbad66641468a1a035fb575fe84a64fa341
6
+ metadata.gz: 488b7f23d40971e9a03bab4601df0ed4028a3d5b235dbc1108cd1efb3a8e579ef34c851d1dd44545ba138767e96c5930b0e6eb905b1b481d6cb30f11a44058eb
7
+ data.tar.gz: b4d2fd08e257daef457e177ca39e0cd888618fdac88de6d4f723ff05e34ffd32581b9b0aada6230bbbed530f2a929a4808f3491e4d9d1560cd5542171153b142
data/CHANGELOG.md CHANGED
@@ -2,6 +2,23 @@
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
+
5
22
  ## [0.52.1] - 2026-08-30
6
23
 
7
24
  ### Performance
@@ -487,7 +504,8 @@
487
504
 
488
505
  - Initial public release
489
506
 
490
- [Unreleased]: https://github.com/Stranger6667/jsonschema/compare/ruby-v0.52.1...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
491
509
  [0.52.1]: https://github.com/Stranger6667/jsonschema/compare/ruby-v0.52.0...ruby-v0.52.1
492
510
  [0.52.0]: https://github.com/Stranger6667/jsonschema/compare/ruby-v0.51.0...ruby-v0.52.0
493
511
  [0.51.0]: https://github.com/Stranger6667/jsonschema/compare/ruby-v0.50.1...ruby-v0.51.0
data/Cargo.toml CHANGED
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "jsonschema-rb"
3
- version = "0.52.1"
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.1", 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.1"
696
+ version = "0.53.0"
697
697
  source = "registry+https://github.com/rust-lang/crates.io-index"
698
- checksum = "93e842fa72fd1e50ca4676a527641c13f5ee0d423ac699bfe1cd2afa3a4fdbac"
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.1"
729
+ version = "0.53.0"
730
730
  source = "registry+https://github.com/rust-lang/crates.io-index"
731
- checksum = "488df32998a7b8e9294ddd99dec9007c0a14fbba6b70f04a872c03d0cd18b9e4"
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.1"
739
+ version = "0.53.0"
740
740
  source = "registry+https://github.com/rust-lang/crates.io-index"
741
- checksum = "b96d8a816ba94060e2308b3d2bb01f3e7179ddeabf96555a7d1f9e84ec2f5baf"
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.1"
758
+ version = "0.53.0"
759
759
  dependencies = [
760
760
  "jsonschema",
761
761
  "magnus",
@@ -769,22 +769,23 @@ dependencies = [
769
769
 
770
770
  [[package]]
771
771
  name = "jsonschema-regex"
772
- version = "0.52.1"
772
+ version = "0.53.0"
773
773
  source = "registry+https://github.com/rust-lang/crates.io-index"
774
- checksum = "f5d90ea83fa606c96f0b4737ecedf1fa6b624272022edc42039565f8d8af0b78"
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.1"
781
+ version = "0.53.0"
782
782
  source = "registry+https://github.com/rust-lang/crates.io-index"
783
- checksum = "da4ab4cbe58181a117d8c3582844ce20b07184319b51ba6d756596c1c451aebc"
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",
@@ -1134,9 +1135,9 @@ dependencies = [
1134
1135
 
1135
1136
  [[package]]
1136
1137
  name = "referencing"
1137
- version = "0.52.1"
1138
+ version = "0.53.0"
1138
1139
  source = "registry+https://github.com/rust-lang/crates.io-index"
1139
- checksum = "d38a014525040cdc9893361b7419bcf1f43b7ba7055eabaf6d91d6b75caa8b3f"
1140
+ checksum = "fb406ba984c08d1b91781d7507d103296cf6dec3256c33c388b468957f4b43bb"
1140
1141
  dependencies = [
1141
1142
  "ahash",
1142
1143
  "fluent-uri",
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "jsonschema-rb-ext"
3
- version = "0.52.1"
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.1", 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.1"
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.1"
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.1
4
+ version: 0.53.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dmitry Dygalo