Changed
- BREAKING:
BasicOutputandAnnotationsno longer have lifetime parameters. Update type annotations fromBasicOutput<'a>toBasicOutputandAnnotations<'a>toAnnotations. referencing: URI caching now avoids hash collisions and reduces lock contention.- Update
fluent-urito0.4.1. - Bump MSRV to
1.83.0. - Drop the
Send + Syncbounds fromRetrieve/AsyncRetrieveonwasm32. - Use the new
draftX::meta::validator()helper so meta-schema validators lazy-init onwasm32while native targets keep borrowing the cachedjsonschema::meta::MetaValidator.
Fixed
- Hostname and IDN hostname formats now decode
xn--labels, reject leading combining marks/uppercase prefixes, and enforce the latest JSON Schema punycode context rules. - Restore
wasm32-unknown-unknownsupport. #785
Performance
applynow reuses cached schema locations, URI fragments, and buffers for up to ~2.5x faster validation.- Recursive and regular
$refcompilation deduplicates validator nodes, which decreases the memory usage and improves performance. - Validator compilation restores the regex cache for faster builds on regex-heavy schemas and precomputes absolute schema locations, trading a bit of compile time for faster
applyon location-heavy workloads. - Large schema compilation is significantly faster. #755
unevaluatedPropertiesvalidation is 25-35% faster through optimized property marking and early-exit paths.unevaluatedPropertiesmemory usage drastically reduced by eliminating redundant registry clones during compilation.unevaluatedItemsvalidation is ~10% faster through early-exit optimizations and eliminating redundant validations in combinators.
Removed
- BREAKING:
Validator::configto reduce the memory footprint. - BREAKING: Public
DRAFT4_META_VALIDATOR,DRAFT6_META_VALIDATOR,DRAFT7_META_VALIDATOR,DRAFT201909_META_VALIDATOR, andDRAFT202012_META_VALIDATORstatics. UsedraftX::meta::validator()helper functions instead (e.g.,draft7::meta::validator()).