Releases: Stranger6667/jsonschema
Releases · Stranger6667/jsonschema
[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.
[Rust] Release 0.40.2
Changed
- Exclude internal
trackerfield fromValidationErrorDebug output. - Switch HTTP client TLS crypto backend from
aws-lc-rstoringto simplify building from source on some Linux distributions. #957
Fixed
type: integervalidation in Draft 4 now correctly accepts large integers outside the i64/u64 range whenarbitrary-precisionfeature is enabled.
[Python] Release 0.40.3
Added
- Pre-built wheels for
musllinux(Alpine Linux) onx86_64andaarch64.
[Python] Release 0.40.2
Changed
- Switch HTTP client TLS crypto backend from
aws-lc-rstoringto fix import errors when building from source on some Linux distributions. #957
Fixed
Draft4Validatornow correctly validates large Python integers outside the i64/u64 range (e.g.,-9223372036854775809,18446744073709551616) as valid fortype: integer.
[Rust] Release 0.40.1
Changed
ValidationErrorKind::Customnow includes akeywordfield containing the custom keyword name.
Performance
- Faster validation via cost-based keyword ordering.
- Faster
patternPropertiesfor simple prefix patterns (e.g.,^x-).