Skip to content

Releases: Stranger6667/jsonschema

[Python] Release 0.42.2

26 Feb 15:29
python-v0.42.2
f28bb25

Choose a tag to compare

Fixed

  • SWAR digit parser accepted bytes :? (0x3A–0x3F) as valid digits during date, time, and date-time format validation, potentially allowing malformed values to pass.

Changed

  • Custom keyword validation exceptions are now chained to the resulting ValidationError via __cause__, preserving the original exception type and message.

Performance

  • Extend pattern prefix optimization to handle escaped slashes (^\/) and exact-match patterns (^\$ref$).
  • Specialize enum for cases when all variants are strings.

[Rust] Release 0.42.1

17 Feb 11:10
rust-v0.42.1
b1584ef

Choose a tag to compare

Performance

  • Reduce dynamic dispatch overhead for non-recursive $ref resolution.
  • Cache ECMA regex transformations during format: "regex" validation.

[Ruby] Release 0.42.1

17 Feb 12:02
ruby-v0.42.1
9ea8fe0

Choose a tag to compare

Performance

  • Reduce dynamic dispatch overhead for non-recursive $ref resolution.
  • Cache ECMA regex transformations during format: "regex" validation.

[Python] Release 0.42.1

17 Feb 11:32
python-v0.42.1
283f8ca

Choose a tag to compare

Performance

  • Reduce dynamic dispatch overhead for non-recursive $ref resolution.
  • Cache ECMA regex transformations during format: "regex" validation.

Packaging

  • Exclude rust-toolchain.toml from wheels. #1012

[Ruby] Release 0.42.0

15 Feb 00:35
ruby-v0.42.0
fd3fc53

Choose a tag to compare

Initial public release

[Rust] Release 0.42.0

14 Feb 17:26
rust-v0.42.0

Choose a tag to compare

Added

  • JsonType::as_str method for zero-allocation type name access.
  • ValidationErrorKind::keyword is now public.
  • tls-ring feature flag to opt into using ring as the TLS crypto provider instead of the default aws-lc-rs. #997
  • CLI: Support YAML (.yaml/.yml) instance files. #988

Changed

  • BREAKING: Default TLS crypto provider switched back to aws-lc-rs. Users who need ring can opt in via the tls-ring feature flag. This resolves potential conflicts with other libraries using aws-lc-rs. #997

Fixed

  • Panic when validating $ref targets that resolve to boolean schemas.

Performance

  • Cache formatted schema locations with OnceLock to avoid repeated formatting during evaluate().

[Python] Release 0.42.0

14 Feb 17:54
python-v0.42.0
0e54560

Choose a tag to compare

Fixed

  • Panic when validating $ref targets that resolve to boolean schemas.

Performance

  • Use FFI PyList_New + PyList_SetItem for array conversion to avoid reallocations.
  • Cache ValidationError, ReferencingError, and decimal.Decimal types to avoid repeated module imports.
  • Cache formatted schema locations to avoid repeated formatting during evaluate().
  • Use as_str instead of to_string for type names in validation errors to avoid allocations.

[Rust] Release 0.41.0

04 Feb 17:58
rust-v0.41.0
008405d

Choose a tag to compare

Performance

  • Replace regex-based uri-template format validation with a hand-rolled RFC 6570 parser.
  • Specialize items keyword for simple type schemas ({"type": "string"}, {"type": "number"}, etc.) to eliminate dynamic dispatch overhead.
  • Precompute regex matches on known properties.
  • Faster unevaluatedProperties validation via O(1) property lookup and short-circuit oneOf evaluation.
  • Use HashMap for large set of properties.
  • Lower HashMap threshold from 40 to 15 properties for faster property lookups.

[Python] Release 0.41.0

04 Feb 18:46
python-v0.41.0
9fef326

Choose a tag to compare

Changed

  • Update pyo3 to 0.28.
  • Remove unused pythonize dependency.

Performance

  • Replace regex-based uri-template format validation with a hand-rolled RFC 6570 parser.
  • Specialize items keyword for simple type schemas ({"type": "string"}, {"type": "number"}, etc.) to eliminate dynamic dispatch overhead.
  • Precompute regex matches on known properties.
  • Faster unevaluatedProperties validation via O(1) property lookup and short-circuit oneOf evaluation.
  • Use HashMap for large set of properties.
  • Lower HashMap threshold from 40 to 15 properties for faster property lookups.

[Python] Release 0.40.4

31 Jan 13:43
python-v0.40.4
c07f518

Choose a tag to compare

Added

  • Pre-built wheels for free-threaded Python (3.13t, 3.14t) on Linux, macOS, and Windows.