Skip to content

Releases: Stranger6667/jsonschema

[Rust] Release 0.37.4

30 Nov 20:50
rust-v0.37.4
eb21217

Choose a tag to compare

Fixed

  • Stack overflow during validation of schemas with circular $ref chains (e.g., a -> b -> a).
  • Local $ref resolution within fragment-extracted external resources. #892

Removed

  • Deprecated PrimitiveType & PrimitiveTypesBitMap.

[Python] Release 0.37.4

30 Nov 20:53
python-v0.37.4
fd168bb

Choose a tag to compare

Fixed

  • Stack overflow during validation of schemas with circular $ref chains (e.g., a -> b -> a).
  • Local $ref resolution within fragment-extracted external resources. #892

[Rust] Release 0.37.3

28 Nov 10:53
rust-v0.37.3
4000ae8

Choose a tag to compare

Fixed

  • External resources not discovered within subresources of local $ref targets. #892

[Python] Release 0.37.3

28 Nov 10:56
python-v0.37.3
b4ec427

Choose a tag to compare

Fixed

  • External resources not discovered within subresources of local $ref targets. #892

[Rust] Release 0.37.2

27 Nov 14:12
rust-v0.37.2
0c056df

Choose a tag to compare

Added

  • JsonTypeSet::len() and JsonTypeSet::remove() helpers for managing type sets.

Fixed

  • External resources not discovered through chained local $ref references. #892

[Python] Release 0.37.2

27 Nov 14:24
python-v0.37.2
9062783

Choose a tag to compare

Fixed

  • External resources not discovered through chained local $ref references. #892

[Rust] Release 0.37.1

19 Nov 11:13
rust-v0.37.1
0c276ef

Choose a tag to compare

Fixed

  • Stack overflow on empty $ref value. #886

[Rust] Release 0.37.0

19 Nov 08:32
rust-v0.37.0
9cef68e

Choose a tag to compare

Added

  • evaluate() top-level function for convenient access to structured validation output.
  • CLI: Schema-only validation now also validates all referenced schemas. #804
  • Support for additional contentEncoding values per RFC 4648: base64url, base32, base32hex, and base16. These encodings are now validated alongside the existing base64 support in Draft 6 and 7. #26
  • validator.iter_errors(instance).into_errors(). It returns a ValidationErrors type that collects validation errors and implements std::error::Error. #451

Changed

  • BREAKING: ValidationError fields are private; use instance(), kind(), instance_path(), and schema_path() instead of accessing struct fields directly.
  • BREAKING: ErrorIterator is now a newtype wrapper instead of Box<dyn ValidationErrorIterator>.

Performance

  • validate and other APIs returning Result<_, ValidationError> are 5–10% faster in some workloads due to the smaller error handle.
  • evaluate: Eliminated deep clones of unmatched keyword values (e.g., title, description, examples) on every schema node evaluation by using Arc internally. It can be multiple times faster for schemas with large annotations.

[Python] Release 0.37.1

19 Nov 11:14
python-v0.37.1
8596a17

Choose a tag to compare

Fixed

  • Stack overflow on empty $ref value. #886

[Python] Release 0.37.0

19 Nov 09:00
python-v0.37.0
9469072

Choose a tag to compare

Added

  • Support for decimal.Decimal type in both schemas and instances. #319
  • Support for additional contentEncoding values per RFC 4648: base64url, base32, base32hex, and base16. These encodings are now validated alongside the existing base64 support in Draft 6 and 7. #26

Performance

  • jsonschema_rs.validate() and Validator.validate() run 5–10% faster in some workloads.
  • evaluate(): Avoiding deep clones of unmatched keyword values (e.g., title, description, examples) on every schema node evaluation. It can be multiple times faster for schemas with large annotations.