Releases: Stranger6667/jsonschema
Releases · Stranger6667/jsonschema
[Python] Release 0.42.2
Fixed
- SWAR digit parser accepted bytes
:–?(0x3A–0x3F) as valid digits duringdate,time, anddate-timeformat validation, potentially allowing malformed values to pass.
Changed
- Custom keyword validation exceptions are now chained to the resulting
ValidationErrorvia__cause__, preserving the original exception type and message.
Performance
- Extend
patternprefix optimization to handle escaped slashes (^\/) and exact-match patterns (^\$ref$). - Specialize
enumfor cases when all variants are strings.
[Rust] Release 0.42.1
Performance
- Reduce dynamic dispatch overhead for non-recursive
$refresolution. - Cache ECMA regex transformations during
format: "regex"validation.
[Ruby] Release 0.42.1
Performance
- Reduce dynamic dispatch overhead for non-recursive
$refresolution. - Cache ECMA regex transformations during
format: "regex"validation.
[Python] Release 0.42.1
Performance
- Reduce dynamic dispatch overhead for non-recursive
$refresolution. - Cache ECMA regex transformations during
format: "regex"validation.
Packaging
- Exclude
rust-toolchain.tomlfrom wheels. #1012
[Ruby] Release 0.42.0
Initial public release
[Rust] Release 0.42.0
Added
JsonType::as_strmethod for zero-allocation type name access.ValidationErrorKind::keywordis now public.tls-ringfeature flag to opt into usingringas the TLS crypto provider instead of the defaultaws-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 needringcan opt in via thetls-ringfeature flag. This resolves potential conflicts with other libraries usingaws-lc-rs. #997
Fixed
- Panic when validating
$reftargets that resolve to boolean schemas.
Performance
- Cache formatted schema locations with
OnceLockto avoid repeated formatting duringevaluate().
[Python] Release 0.42.0
Fixed
- Panic when validating
$reftargets that resolve to boolean schemas.
Performance
- Use FFI
PyList_New+PyList_SetItemfor array conversion to avoid reallocations. - Cache
ValidationError,ReferencingError, anddecimal.Decimaltypes to avoid repeated module imports. - Cache formatted schema locations to avoid repeated formatting during
evaluate(). - Use
as_strinstead ofto_stringfor type names in validation errors to avoid allocations.
[Rust] Release 0.41.0
Performance
- Replace regex-based
uri-templateformat validation with a hand-rolled RFC 6570 parser. - Specialize
itemskeyword for simple type schemas ({"type": "string"},{"type": "number"}, etc.) to eliminate dynamic dispatch overhead. - Precompute regex matches on known properties.
- Faster
unevaluatedPropertiesvalidation via O(1) property lookup and short-circuitoneOfevaluation. - Use HashMap for large set of properties.
- Lower HashMap threshold from 40 to 15 properties for faster property lookups.
[Python] Release 0.41.0
Changed
- Update
pyo3to0.28. - Remove unused
pythonizedependency.
Performance
- Replace regex-based
uri-templateformat validation with a hand-rolled RFC 6570 parser. - Specialize
itemskeyword for simple type schemas ({"type": "string"},{"type": "number"}, etc.) to eliminate dynamic dispatch overhead. - Precompute regex matches on known properties.
- Faster
unevaluatedPropertiesvalidation via O(1) property lookup and short-circuitoneOfevaluation. - Use HashMap for large set of properties.
- Lower HashMap threshold from 40 to 15 properties for faster property lookups.
[Python] Release 0.40.4
Added
- Pre-built wheels for free-threaded Python (3.13t, 3.14t) on Linux, macOS, and Windows.