Skip to content

[Rust] Release 0.49.7

Choose a tag to compare

@github-actions github-actions released this 07 Aug 21:56
· 354 commits to master since this release
b02e0d6

Added

  • CanonicalizeOptions::with_retriever to fetch external resources absent from the registry.
  • CanonicalizeOptions::with_base_uri to resolve relative references in the root schema.
  • Canonicalization of a oneOf whose branches name disjoint targets, which degrades to a union.
  • Canonicalization of a vacuous patternProperties entry beside schema-valued additionalProperties, where matching keys escape its value constraint.
  • Canonicalization of a Draft 4 closed pattern map with a reference nested under a property.
  • Canonicalization of Draft 4 closed pattern maps that meet through an applicator.
  • The complement of a reference back to a target already being negated, which stays symbolic instead of declining.
  • CanonicalSchema::definition resolving # to the document the handle was read against.

Performance

  • Up to 150x faster canonicalization of not over a union of many branches.
  • 2% faster emission of canonical schemas, which no longer formats copied string values.
  • 5% faster emission of canonical schemas, which no longer formats object keys while copying them.
  • Up to 12% faster canonicalization of schemas that repeatedly intersect the same branches.
  • 13% faster canonicalization of a non-dynamic OpenAPI document, which no longer scans every schema object for dynamic references.
  • Faster canonicalization of schemas with local $defs references, which avoid decoding unescaped definition names.
  • 23% faster canonicalization of an object whose keys a finite property-name set spells.
  • 3% faster intersection of schemas where one side constrains nothing.
  • Up to 31x faster canonicalization of a oneOf whose many branches overlap.
  • Up to 14x faster canonicalization of a union whose object branches share no values.
  • 7% faster canonicalization of schemas that reach the same pair of nodes repeatedly.
  • 5% faster canonicalization of objects, whose property maps no longer reach the allocator.
  • Up to 8% faster canonicalization of schemas that reach true and false subschemas repeatedly.
  • 2% faster canonicalization of schemas that assert known string formats.

Fixed

  • CanonicalSchema::definition and CanonicalSchema::definitions handing out a target that names the document root without that document, where # points at the target instead.
  • An items tail beyond an array's length ceiling surviving canonicalization, where it governs no element.
  • CanonicalSchema::to_json_schema leaving the document root out of a node emitted below it, where # points at that node instead.