NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #894 most downloaded on crates.io
JSON schema validaton library
Last release 3 days ago
02 Oct 2026
Ships fairly regularly
a new release about every 9 days
Nearly every release is documented
notes for 60 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
7 years old
136 releases · first in 2020
One column per quarter.
paths::JSONPointer implements IntoIterator over paths::PathChunk.
Avoid some repetitive String allocations during validation.
String allocations during validation.RwLock.read() calls in $ref validators.uniqueItems validator for short arrays.additionalProperties. Use vectors instead of AHashMap if the number of properties is small.required validators.enum validators.allOf validators.patternProperties validators without defined additionalProperties.multipleOf validator. Relevant test case from the JSONSchema test suite - float_overflow.json.Avoid String allocation in JSONPointer.into_vec.
String allocation in JSONPointer.into_vec.InstancePath with stack-only linked list.The propertyNames validator now contains the parent object in its instance attribute instead of individual properties as strings.
propertyNames validator now contains the parent object in its instance attribute instead of individual properties as strings.additionalProperties validator. After - Additional properties are not allowed ('faz' was unexpected), before - False schema does not allow '"faz"'.additionalProperties validator emits a single error for all unexpected properties instead of separate errors for each unexpected property.ValidationError.instance_path is now a separate struct, that can be transformed to Vec<String> or JSON Pointer of type String.instance_path attributes are pointing to the proper location.ValidationError.instance_path that shows the path to the erroneous part of the input instance. It has the Vec type and contains components of the rele
ValidationError.instance_path that shows the path to the erroneous part of the input instance.
It has the Vec<String> type and contains components of the relevant JSON pointer.ValidationError public. It allows the end-user to customize errors formatting.const and enum keywords. Fixes an issue checked by these testsrequired keyword implementation. #190ValidationErrorKind::Unexpected.Incorrect handling of \w and \W character groups in pattern keywords. #180
\w and \W character groups in pattern keywords. #180\\w) in pattern keywords.Missing validation errors after the 1st one in additionalProperties validators.
additionalProperties validators.rayon in items keyword as it gives significant overhead for a general case.additionalProperties / properties / patternProperties validators. #173with_meta_schemas argument for is_valid and update docstrings.validate function.items and additionalProperties validators.Cache for documents loaded via the $ref keyword. #75
$ref keyword. #75$id values with trailing # symbol. #163-V/--validator options from the CLI. They were no-op and never worked.$ref keyword. #75$id values with trailing # symbol. #163pip install jsonschema_rs on platforms that we don't have wheels for.
#159Make examples in README.md runnable.
cli dependency from the jsonschema crate & update dependencies in Cargo.lock.Move paste to dev dependencies.
Integers not recognized as numbers when the type keyword is a list of multiple values. #147
type keyword is a list of multiple values. #147ToString trait implementation for validators.
ToString trait implementation for validators.JSONSchema::options to customise JSONSchema compilation #131contentEncoding and contentMediaType keywordsidn-hostname is not defined on draft 4 and draft 6)__init__.py file. It improves performance for compiled schemas. #121PyO3 to 0.12. #125idn-hostname is not defined on draft 4 and draft 6)Value instead of using unwrap in JSONSchema::is_valid and JSONSchema::validate. #127Enable Link-Time Optimizations and set codegen-units to 1. #104
jsonschema_rs.__build__ which contains useful build information. #111manylinux2014 compatible. Previously they were manylinux2010 compatible. #111JSONSchema Draft 4 support (except one optional case). #34
is_valid methods for all keywords.rayon in items keyword validation.clippy lints. #66Debug implementation for JSONSchema and Resolver. #97Default implementation for Draft.to_string instead of format!. #85$ref keyword. #83type keyword implementation. #78match statements during compilation functions resolving.expect instead of unwrap for known cases when it is known that the code won't panic.format cases.DEFAULT_SCOPE during reference resolving.Value::as_* calls with if let.compile functions.format keyword compilation by using static strings.true, false and $ref validators.DEFAULT_ROOT_URL in JSONSchema::compile.scope parsing in JSONSchema::compile.BTreeSet in additionalProperties keyword during compilation to reduce the amount of copied data. #91Implement is_valid for various validators.
is_valid for various validators.Error and Display for CompilationErrorErrorIterator Sync and Send.CompilationError on invalid input schemas instead of panic.[Unreleased]: https://github.com/Stranger6667/jsonschema/compare/rust-v0.58.5...HEAD [0.58.5]: https://github.com/Stranger6667/jsonschema/compare/rust
Your coding agent can read these notes before it upgrades. Set up the MCP server →