Skip to content

[Rust] Release 0.21.0

Compare
Choose a tag to compare
@Stranger6667 Stranger6667 released this 29 Sep 14:37
· 42 commits to master since this release
rust-v0.21.0
c4d5505

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 and SchemaResolverError in favor of a simpler Retrieve that works with Box<dyn std::error::Error>.
    In turn, it also deprecates ValidationOptions::with_resolver in favor of ValidationOptions::with_retriever
  • ValidationOptions::with_document in favor of ValidationOptions::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, and iri-reference formats.