[Rust] Release 0.21.0
·
232 commits
to master
since this release
Important: This release brings a complete rework of reference resolving which deprecates some older APIs.
While backward compatibility is maintained for now, users are encouraged to update their code. See the Migration Guide for details on transitioning to the new API.
Added
$anchor
support.$recursiveRef
&$recursiveAnchor
support in Draft 2019-09.$dynamicRef
&$dynamicAnchor
support in Draft 2020-12.
Changed
- BREAKING: Treat
$ref
as URI, not URL and additionally normalize them. #454 - BREAKING: Resolve all non-recursive references eagerly.
- BREAKING: Disallow use of fragments in
$id
. #264
Deprecated
SchemaResolver
trait andSchemaResolverError
in favor of a simplerRetrieve
that works withBox<dyn std::error::Error>
.
In turn, it also deprecatesValidationOptions::with_resolver
in favor ofValidationOptions::with_retriever
ValidationOptions::with_document
in favor ofValidationOptions::with_resource
.
Fixed
- Infinite recursion in
unevaluatedProperties
. #420 - Cross-draft validation from newer to older ones.
- Changing base URI in folder.
- Location-independent identifier in remote resource.
- Missing some format validation for Draft 2020-12.
- Incomplete
iri
&iri-reference
validation.
Performance
- Faster validation for
uri
,iri
,uri-reference
, andiri-reference
formats.