Skip to main content

jsonschema-rs

Build Version Python versions License Supported Dialects

A high-performance JSON Schema validator for Python.

import jsonschema_rs

schema = {"maxLength": 5}
instance = "foo"

# One-off validation
try:
    jsonschema_rs.validate(schema, "incorrect")
except jsonschema_rs.ValidationError as exc:
    assert str(exc) == '''"incorrect" is longer than 5 characters

Failed validating "maxLength" in schema

On instance:
    "incorrect"'''

# Build & reuse (faster)
validator = jsonschema_rs.validator_for(schema)

# Iterate over errors
for error in validator.iter_errors(instance):
    print(f"Error: {error}")
    print(f"Location: {error.instance_path}")

# Boolean result
assert validator.is_valid(instance)

# Structured output (JSON Schema Output v1)
evaluation = validator.evaluate(instance)
for error in evaluation.errors():
    print(f"Error at {error['instanceLocation']}: {error['error']}")

⚠️ Upgrading from older versions? Check our Migration Guide for key changes.

Migrating from jsonschema? See the jsonschema migration guide.

Highlights

  • 📚 Full support for popular JSON Schema drafts
  • 🌐 Remote reference fetching (network/file)
  • 🔧 Custom keywords and format validators
  • ✨ Meta-schema validation for schema documents
  • 📦 Schema bundling into Compound Schema Documents

Supported drafts

The following drafts are supported:

  • Draft 2020-12
  • Draft 2019-09
  • Draft 7
  • Draft 6
  • Draft 4

You can check the current status on the Bowtie Report.

Playground

If you'd like to try jsonschema, you can check the WebAssembly-powered playground to see the results instantly.

Installation

To install jsonschema-rs via pip run the following command:

pip install jsonschema-rs

Usage

If you have a schema as a JSON string, then you could pass it to validator_for to avoid parsing on the Python side:

import jsonschema_rs

validator = jsonschema_rs.validator_for('{"minimum": 42}')
...

You can use draft-specific validators for different JSON Schema versions:

import jsonschema_rs

# Automatic draft detection
validator = jsonschema_rs.validator_for({"minimum": 42})

# Draft-specific validators
validator = jsonschema_rs.Draft7Validator({"minimum": 42})
validator = jsonschema_rs.Draft201909Validator({"minimum": 42})
validator = jsonschema_rs.Draft202012Validator({"minimum": 42})

JSON Schema allows for format validation through the format keyword. While jsonschema-rs provides built-in validators for standard formats, you can also define custom format validators for domain-specific string formats.

To implement a custom format validator:

  1. Define a function that takes a str and returns a bool.
  2. Pass it with the formats argument.
  3. Ensure validate_formats is set appropriately (especially for Draft 2019-09 and 2020-12).
import jsonschema_rs

def is_currency(value):
    # The input value is always a string
    return len(value) == 3 and value.isascii()


validator = jsonschema_rs.validator_for(
    {"type": "string", "format": "currency"}, 
    formats={"currency": is_currency},
    validate_formats=True  # Important for Draft 2019-09 and 2020-12
)
validator.is_valid("USD")  # True
validator.is_valid("invalid")  # False

Custom Keywords

You can extend JSON Schema with custom keywords for domain-specific validation rules. Custom keywords are classes that receive the keyword value during schema compilation and validate instances at runtime:

import jsonschema_rs

class DivisibleBy:
    def __init__(self, parent_schema, value, schema_path):
        self.divisor = value

    def validate(self, instance):
        if isinstance(instance, int) and instance % self.divisor != 0:
            raise ValueError(f"{instance} is not divisible by {self.divisor}")


validator = jsonschema_rs.validator_for(
    {"type": "integer", "divisibleBy": 3},
    keywords={"divisibleBy": DivisibleBy},
)
validator.is_valid(9)   # True
validator.is_valid(10)  # False

When validate raises, the original exception is preserved as the __cause__ of the ValidationError, so callers can inspect it:

try:
    validator.validate(instance)
except jsonschema_rs.ValidationError as e:
    print(type(e.__cause__))   # <class 'ValueError'>
    print(e.__cause__)         # original message

Additional configuration options are available for fine-tuning the validation process:

  • validate_formats: Override the draft-specific default behavior for format validation.
  • ignore_unknown_formats: Control whether unrecognized formats should be reported as errors.
  • base_uri - a base URI for all relative $ref in the schema.

Example usage of these options:

import jsonschema_rs

validator = jsonschema_rs.Draft202012Validator(
    {"type": "string", "format": "date"},
    validate_formats=True,
    ignore_unknown_formats=False
)

# This will validate the "date" format
validator.is_valid("2023-05-17")  # True
validator.is_valid("not a date")  # False

# With ignore_unknown_formats=False, using an unknown format will raise an error
invalid_schema = {"type": "string", "format": "unknown"}
try:
    jsonschema_rs.Draft202012Validator(
        invalid_schema, validate_formats=True, ignore_unknown_formats=False
    )
except jsonschema_rs.ValidationError as exc:
    assert str(exc) == '''Unknown format: 'unknown'. Adjust configuration to ignore unrecognized formats

Failed validating "format" in schema

On instance:
    "unknown"'''

Structured Output with evaluate

When you need more than a boolean result, use the evaluate API to access the JSON Schema Output v1 formats:

import jsonschema_rs

schema = {
    "type": "array",
    "prefixItems": [{"type": "string"}],
    "items": {"type": "integer"},
}
evaluation = jsonschema_rs.evaluate(schema, ["hello", "oops"])

assert evaluation.flag() == {"valid": False}
assert evaluation.list() == {
    "valid": False,
    "details": [
        {
            "evaluationPath": "",
            "instanceLocation": "",
            "schemaLocation": "",
            "valid": False,
        },
        {
            "valid": True,
            "evaluationPath": "/type",
            "instanceLocation": "",
            "schemaLocation": "/type",
        },
        {
            "valid": False,
            "evaluationPath": "/items",
            "instanceLocation": "",
            "schemaLocation": "/items",
            "droppedAnnotations": True,
        },
        {
            "valid": False,
            "evaluationPath": "/items",
            "instanceLocation": "/1",
            "schemaLocation": "/items",
        },
        {
            "valid": False,
            "evaluationPath": "/items/type",
            "instanceLocation": "/1",
            "schemaLocation": "/items/type",
            "errors": {"type": '"oops" is not of type "integer"'},
        },
        {
            "valid": True,
            "evaluationPath": "/prefixItems",
            "instanceLocation": "",
            "schemaLocation": "/prefixItems",
            "annotations": 0,
        },
        {
            "valid": True,
            "evaluationPath": "/prefixItems/0",
            "instanceLocation": "/0",
            "schemaLocation": "/prefixItems/0",
        },
        {
            "valid": True,
            "evaluationPath": "/prefixItems/0/type",
            "instanceLocation": "/0",
            "schemaLocation": "/prefixItems/0/type",
        },
    ],
}

hierarchical = evaluation.hierarchical()
assert hierarchical == {
    "valid": False,
    "evaluationPath": "",
    "instanceLocation": "",
    "schemaLocation": "",
    "details": [
        {
            "valid": True,
            "evaluationPath": "/type",
            "instanceLocation": "",
            "schemaLocation": "/type",
        },
        {
            "valid": False,
            "evaluationPath": "/items",
            "instanceLocation": "",
            "schemaLocation": "/items",
            "droppedAnnotations": True,
            "details": [
                {
                    "valid": False,
                    "evaluationPath": "/items",
                    "instanceLocation": "/1",
                    "schemaLocation": "/items",
                    "details": [
                        {
                            "valid": False,
                            "evaluationPath": "/items/type",
                            "instanceLocation": "/1",
                            "schemaLocation": "/items/type",
                            "errors": {"type": '"oops" is not of type "integer"'},
                        }
                    ],
                }
            ],
        },
        {
            "valid": True,
            "evaluationPath": "/prefixItems",
            "instanceLocation": "",
            "schemaLocation": "/prefixItems",
            "annotations": 0,
            "details": [
                {
                    "valid": True,
                    "evaluationPath": "/prefixItems/0",
                    "instanceLocation": "/0",
                    "schemaLocation": "/prefixItems/0",
                    "details": [
                        {
                            "valid": True,
                            "evaluationPath": "/prefixItems/0/type",
                            "instanceLocation": "/0",
                            "schemaLocation": "/prefixItems/0/type",
                        }
                    ],
                }
            ],
        },
    ],
}

assert evaluation.errors() == [
    {
        "schemaLocation": "/items/type",
        "absoluteKeywordLocation": None,
        "instanceLocation": "/1",
        "error": '"oops" is not of type "integer"',
    }
]

assert evaluation.annotations() == [
    {
        "schemaLocation": "/prefixItems",
        "absoluteKeywordLocation": None,
        "instanceLocation": "",
        "annotations": 0,
    }
]

Arbitrary-Precision Numbers

The Python bindings always include the arbitrary-precision support from the Rust validator, so numeric values are exposed to Python using the most accurate type available:

  • Integers, regardless of size, are returned as regular int objects.
  • Floating-point literals that fit into IEEE-754 become Python floats.
  • Floating-point literals that don't fit in float (for example 1e10000 or extremely precise decimals) fall back to decimal.Decimal using their original JSON string representation.

This means ValidationError.kind attributes may contain Decimal instances for very large numbers. Import Decimal from the standard library if you need to compare against or serialize those values exactly:

from decimal import Decimal
from jsonschema_rs import ValidationError, validator_for

validator = validator_for('{"const": 1e10000}')
try:
    validator.validate(0)
except ValidationError as exc:
    assert exc.kind.expected_value == Decimal("1e10000")

# Extremely large exponents (beyond ~10^1_000_000) are clamped internally to keep parsing
# predictable, matching the Rust implementation's guardrails.

Schema Bundling

Produce a Compound Schema Document (Appendix B) by embedding all external $ref targets into a draft-appropriate container. The result validates identically to the original.

import jsonschema_rs

address_schema = {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "$id": "https://example.com/address.json",
    "type": "object",
    "properties": {"street": {"type": "string"}, "city": {"type": "string"}},
    "required": ["street", "city"]
}

schema = {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {"home": {"$ref": "https://example.com/address.json"}},
    "required": ["home"]
}

registry = jsonschema_rs.Registry([("https://example.com/address.json", address_schema)])
bundled = jsonschema_rs.bundle(schema, registry=registry)

Meta-Schema Validation

JSON Schema documents can be validated against their meta-schemas to ensure they are valid schemas. jsonschema-rs provides this functionality through the meta module:

import jsonschema_rs

# Valid schema
schema = {
    "type": "object",
    "properties": {
        "name": {"type": "string"},
        "age": {"type": "integer", "minimum": 0}
    },
    "required": ["name"]
}

# Validate schema (draft is auto-detected)
assert jsonschema_rs.meta.is_valid(schema)
jsonschema_rs.meta.validate(schema)  # No error raised

# Invalid schema
invalid_schema = {
    "minimum": "not_a_number"  # "minimum" must be a number
}

try:
    jsonschema_rs.meta.validate(invalid_schema)
except jsonschema_rs.ValidationError as exc:
    assert 'is not of type "number"' in str(exc)

Regular Expression Configuration

When validating schemas with regex patterns (in pattern or patternProperties), you can configure the underlying regex engine:

import jsonschema_rs
from jsonschema_rs import FancyRegexOptions, RegexOptions

# Default fancy-regex engine with backtracking limits
# (supports advanced features but needs protection against DoS)
validator = jsonschema_rs.validator_for(
    {"type": "string", "pattern": "^(a+)+$"},
    pattern_options=FancyRegexOptions(backtrack_limit=10_000)
)

# Standard regex engine for guaranteed linear-time matching
# (prevents regex DoS attacks but supports fewer features)
validator = jsonschema_rs.validator_for(
    {"type": "string", "pattern": "^a+$"},
    pattern_options=RegexOptions()
)

# Both engines support memory usage configuration
validator = jsonschema_rs.validator_for(
    {"type": "string", "pattern": "^a+$"},
    pattern_options=RegexOptions(
        size_limit=1024 * 1024,   # Maximum compiled pattern size
        dfa_size_limit=10240      # Maximum DFA cache size
    )
)

The available options:

  • FancyRegexOptions: Default engine with lookaround and backreferences support

    • backtrack_limit: Maximum backtracking steps
    • size_limit: Maximum compiled regex size in bytes
    • dfa_size_limit: Maximum DFA cache size in bytes
  • RegexOptions: Safer engine with linear-time guarantee

    • size_limit: Maximum compiled regex size in bytes
    • dfa_size_limit: Maximum DFA cache size in bytes

This configuration is crucial when working with untrusted schemas where attackers might craft malicious regex patterns.

Email Format Configuration

When validating email addresses using {"format": "email"}, you can customize the validation behavior beyond the default JSON Schema spec requirements:

import jsonschema_rs
from jsonschema_rs import EmailOptions

# Require a top-level domain (reject "user@localhost")
validator = jsonschema_rs.validator_for(
    {"format": "email", "type": "string"},
    validate_formats=True,
    email_options=EmailOptions(require_tld=True)
)
validator.is_valid("user@localhost")     # False
validator.is_valid("user@example.com")   # True

# Disallow IP address literals and display names
validator = jsonschema_rs.validator_for(
    {"format": "email", "type": "string"},
    validate_formats=True,
    email_options=EmailOptions(
        allow_domain_literal=False,  # Reject "user@[127.0.0.1]"
        allow_display_text=False     # Reject "Name <user@example.com>"
    )
)

# Require minimum domain segments
validator = jsonschema_rs.validator_for(
    {"format": "email", "type": "string"},
    validate_formats=True,
    email_options=EmailOptions(minimum_sub_domains=3)  # e.g., user@sub.example.com
)

Available options:

  • require_tld: Require a top-level domain (e.g., reject "user@localhost")
  • allow_domain_literal: Allow IP address literals like "user@[127.0.0.1]" (default: True)
  • allow_display_text: Allow display names like "Name user@example.com" (default: True)
  • minimum_sub_domains: Minimum number of domain segments required

External References

By default, jsonschema-rs resolves HTTP references and file references from the local file system. You can implement a custom retriever to handle external references. Here's an example that uses a static map of schemas:

import jsonschema_rs

def retrieve(uri: str):
    schemas = {
        "https://example.com/person.json": {
            "type": "object",
            "properties": {
                "name": {"type": "string"},
                "age": {"type": "integer"}
            },
            "required": ["name", "age"]
        }
    }
    if uri not in schemas:
        raise KeyError(f"Schema not found: {uri}")
    return schemas[uri]

schema = {
    "$ref": "https://example.com/person.json"
}

validator = jsonschema_rs.validator_for(schema, retriever=retrieve)

# This is valid
validator.is_valid({
    "name": "Alice",
    "age": 30
})

# This is invalid (missing "age")
validator.is_valid({
    "name": "Bob"
})  # False

Schema Registry

For applications that frequently use the same schemas, you can create a registry to store and reference them efficiently:

import jsonschema_rs

# Create a registry with schemas
registry = jsonschema_rs.Registry([
    ("https://example.com/address.json", {
        "type": "object",
        "properties": {
            "street": {"type": "string"},
            "city": {"type": "string"}
        }
    }),
    ("https://example.com/person.json", {
        "type": "object",
        "properties": {
            "name": {"type": "string"},
            "address": {"$ref": "https://example.com/address.json"}
        }
    })
])

# Use the registry with any validator
validator = jsonschema_rs.validator_for(
    {"$ref": "https://example.com/person.json"},
    registry=registry
)

# Validate instances
assert validator.is_valid({
    "name": "John",
    "address": {"street": "Main St", "city": "Boston"}
})

The registry can be configured with a draft version and a retriever for external references:

import jsonschema_rs

registry = jsonschema_rs.Registry(
    resources=[
        (
            "https://example.com/address.json",
            {}
        )
    ],  # Your schemas
    draft=jsonschema_rs.Draft202012,  # Optional
    retriever=lambda uri: {}  # Optional
)

Error Handling

jsonschema-rs provides detailed validation errors through the ValidationError class, which includes both basic error information and specific details about what caused the validation to fail:

import jsonschema_rs

schema = {"type": "string", "maxLength": 5}

try:
    jsonschema_rs.validate(schema, "too long")
except jsonschema_rs.ValidationError as error:
    # Basic error information
    print(error.message)       # '"too long" is longer than 5 characters'
    print(error.instance_path) # Location in the instance that failed
    print(error.schema_path)   # Location in the schema that failed

    # Detailed error information via `kind`
    if isinstance(error.kind, jsonschema_rs.ValidationErrorKind.MaxLength):
        assert error.kind.limit == 5
        print(f"Exceeded maximum length of {error.kind.limit}")

For a complete list of all error kinds and their attributes, see the type definitions file

Error Kind Properties

Each error has a kind property with convenient accessors:

for error in jsonschema_rs.iter_errors({"minimum": 5}, 3):
    print(error.kind.name)      # "minimum"
    print(error.kind.value)     # 5
    print(error.kind.as_dict()) # {"limit": 5}

Pattern matching (Python 3.10+):

for error in jsonschema_rs.iter_errors({"minimum": 5}, 3):
    match error.kind:
        case jsonschema_rs.ValidationErrorKind.Minimum(limit=limit):
            print(f"Value below {limit}")
        case jsonschema_rs.ValidationErrorKind.Type(types=types):
            print(f"Expected one of {types}")

Error Message Masking

When working with sensitive data, you might want to hide actual values from error messages. You can mask instance values in error messages by providing a placeholder:

import jsonschema_rs

schema = {
    "type": "object",
    "properties": {
        "password": {"type": "string", "minLength": 8},
        "api_key": {"type": "string", "pattern": "^[A-Z0-9]{32}$"}
    }
}

# Use default masking (replaces values with "[REDACTED]")
validator = jsonschema_rs.validator_for(schema, mask="[REDACTED]")

try:
    validator.validate({
        "password": "123",
        "api_key": "secret_key_123"
    })
except jsonschema_rs.ValidationError as exc:
    assert str(exc) == '''[REDACTED] is shorter than 8 characters

Failed validating "minLength" in schema["properties"]["password"]

On instance["password"]:
    [REDACTED]'''

Performance

jsonschema-rs is designed for high performance, outperforming other Python JSON Schema validators in most scenarios:

  • 84-2,270x faster than jsonschema for complex schemas and large instances
  • 5-480x faster than fastjsonschema on CPython

For detailed benchmarks, see our full performance comparison.

Python support

jsonschema-rs supports CPython 3.10 through 3.14 and PyPy 3.10+.

Pre-built wheels are available for:

  • Linux: x86_64, i686, aarch64 (glibc and musl)
  • macOS: x86_64, aarch64, universal2
  • Windows: x64, x86

Troubleshooting

If you encounter linking errors when building from source on Linux (e.g., undefined symbol errors related to ring or crypto), try using the mold linker:

RUSTFLAGS="-C link-arg=-fuse-ld=mold" pip install jsonschema-rs --no-binary :all:

Acknowledgements

This library draws API design inspiration from the Python jsonschema package. We're grateful to the Python jsonschema maintainers and contributors for their pioneering work in JSON Schema validation.

Support

If you have questions, need help, or want to suggest improvements, please use GitHub Discussions.

Sponsorship

If you find jsonschema-rs useful, please consider sponsoring its development.

Contributing

We welcome contributions! Here's how you can help:

See CONTRIBUTING.md for more details.

License

Licensed under MIT License.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jsonschema_rs-0.49.7.tar.gz (2.5 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

jsonschema_rs-0.49.7-pp311-pypy311_pp73-win_amd64.whl (5.3 MB view details)

Uploaded PyPyWindows x86-64

jsonschema_rs-0.49.7-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl (4.9 MB view details)

Uploaded PyPymanylinux: glibc 2.28+ ARM64

jsonschema_rs-0.49.7-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.3 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

jsonschema_rs-0.49.7-pp311-pypy311_pp73-macosx_10_12_x86_64.whl (5.2 MB view details)

Uploaded PyPymacOS 10.12+ x86-64

jsonschema_rs-0.49.7-cp315-cp315t-win_amd64.whl (5.3 MB view details)

Uploaded CPython 3.15tWindows x86-64

jsonschema_rs-0.49.7-cp315-cp315t-musllinux_1_2_x86_64.whl (5.6 MB view details)

Uploaded CPython 3.15tmusllinux: musl 1.2+ x86-64

jsonschema_rs-0.49.7-cp315-cp315t-musllinux_1_2_aarch64.whl (5.1 MB view details)

Uploaded CPython 3.15tmusllinux: musl 1.2+ ARM64

jsonschema_rs-0.49.7-cp315-cp315t-manylinux_2_28_aarch64.whl (4.9 MB view details)

Uploaded CPython 3.15tmanylinux: glibc 2.28+ ARM64

jsonschema_rs-0.49.7-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.3 MB view details)

Uploaded CPython 3.15tmanylinux: glibc 2.17+ x86-64

jsonschema_rs-0.49.7-cp315-cp315t-macosx_11_0_arm64.whl (4.8 MB view details)

Uploaded CPython 3.15tmacOS 11.0+ ARM64

jsonschema_rs-0.49.7-cp315-cp315t-macosx_10_12_x86_64.whl (5.2 MB view details)

Uploaded CPython 3.15tmacOS 10.12+ x86-64

jsonschema_rs-0.49.7-cp314-cp314t-win_amd64.whl (5.3 MB view details)

Uploaded CPython 3.14tWindows x86-64

jsonschema_rs-0.49.7-cp314-cp314t-musllinux_1_2_x86_64.whl (5.6 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

jsonschema_rs-0.49.7-cp314-cp314t-musllinux_1_2_aarch64.whl (5.1 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

jsonschema_rs-0.49.7-cp314-cp314t-manylinux_2_28_aarch64.whl (4.9 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ ARM64

jsonschema_rs-0.49.7-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.3 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64

jsonschema_rs-0.49.7-cp314-cp314t-macosx_11_0_arm64.whl (4.8 MB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

jsonschema_rs-0.49.7-cp314-cp314t-macosx_10_12_x86_64.whl (5.2 MB view details)

Uploaded CPython 3.14tmacOS 10.12+ x86-64

jsonschema_rs-0.49.7-cp310-abi3-win_amd64.whl (5.3 MB view details)

Uploaded CPython 3.10+Windows x86-64

jsonschema_rs-0.49.7-cp310-abi3-win32.whl (4.5 MB view details)

Uploaded CPython 3.10+Windows x86

jsonschema_rs-0.49.7-cp310-abi3-musllinux_1_2_x86_64.whl (5.6 MB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ x86-64

jsonschema_rs-0.49.7-cp310-abi3-musllinux_1_2_aarch64.whl (5.1 MB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ ARM64

jsonschema_rs-0.49.7-cp310-abi3-manylinux_2_28_aarch64.whl (4.9 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.28+ ARM64

jsonschema_rs-0.49.7-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.3 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ x86-64

jsonschema_rs-0.49.7-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (5.1 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ i686

jsonschema_rs-0.49.7-cp310-abi3-macosx_10_12_x86_64.whl (5.2 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

jsonschema_rs-0.49.7-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (10.0 MB view details)

Uploaded CPython 3.10+macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

File details

Details for the file jsonschema_rs-0.49.7.tar.gz.

File metadata

  • Download URL: jsonschema_rs-0.49.7.tar.gz
  • Upload date:
  • Size: 2.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for jsonschema_rs-0.49.7.tar.gz
Algorithm Hash digest
SHA256 a24d5fb96bf8d4845982602689527274036d557e13d870e65d152e13f6f5cff3
MD5 156d7c8ace9f3a8d5f36b9d4640cfa78
BLAKE2b-256 e3a009f81fe1363b41acdeca5341252ebce0acfe140a717e910763fd155cb425

See more details on using hashes here.

File details

Details for the file jsonschema_rs-0.49.7-pp311-pypy311_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for jsonschema_rs-0.49.7-pp311-pypy311_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 45efde44df5143b1f3df8dfa0109b7cce8c60ed2b780ff3913f464546d924262
MD5 43f8bcc1135e6d078b89c50f05a844e8
BLAKE2b-256 b055a43f5c3390617ea641391490a58519d748639e95e16120e69489857c399f

See more details on using hashes here.

File details

Details for the file jsonschema_rs-0.49.7-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for jsonschema_rs-0.49.7-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d55494f22d108329ebc7c956c104df8c7f7a52bfd55bbed657c7ba891c96867b
MD5 860c6f2616151833287ad6a7a73d709d
BLAKE2b-256 dbceb2ba189a436ba80ce934cc73fc8c18f28083fcaf015165b4c0e2d8d91dc2

See more details on using hashes here.

File details

Details for the file jsonschema_rs-0.49.7-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for jsonschema_rs-0.49.7-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4ee061451cc7b46f035b982434d356d34f4d26ecb594410a802c5b8444db7fd5
MD5 85d6ce265475bdd16b26d761f4135936
BLAKE2b-256 fb79fd2923d9af176ab5031de47ef9454a5f62a24eada875ff97ea51f3f4ea93

See more details on using hashes here.

File details

Details for the file jsonschema_rs-0.49.7-pp311-pypy311_pp73-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for jsonschema_rs-0.49.7-pp311-pypy311_pp73-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 6b1c1c036edf0754f2c91819bdc8a25eaa7797ceda77156a53ea072a4e910af1
MD5 1a8cbca0f85b8febaf44b8330c58b19c
BLAKE2b-256 3e686ed081c5131e3b868a8879efcc2832049479e83e116b04828f97b1e4874c

See more details on using hashes here.

File details

Details for the file jsonschema_rs-0.49.7-cp315-cp315t-win_amd64.whl.

File metadata

File hashes

Hashes for jsonschema_rs-0.49.7-cp315-cp315t-win_amd64.whl
Algorithm Hash digest
SHA256 0c649f31541b054f63d7303a93eff701e512321b7760b2f51edd1061ffd736c7
MD5 bb0792fbd33ac9f5d00516a118e13151
BLAKE2b-256 36ce16e97f13a1e68a1f6cd897add04f2162efe735fe857b3f82c622b3b21ce1

See more details on using hashes here.

File details

Details for the file jsonschema_rs-0.49.7-cp315-cp315t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for jsonschema_rs-0.49.7-cp315-cp315t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d3a7438d3308e165165f00afa6e9f0beda0b161ee0ea9b4c9175a28776277187
MD5 6c96fc34afb1f9c73235cd33d89a1099
BLAKE2b-256 6a32a5ca1208d48a11861e130c83ce92d83a7be8f03e2a00702a7c8b801f5f33

See more details on using hashes here.

File details

Details for the file jsonschema_rs-0.49.7-cp315-cp315t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for jsonschema_rs-0.49.7-cp315-cp315t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e407fe118086a703d6763080175dc7a2d7c2da1d30a0363bce4bfa7d09def02b
MD5 3ff429316f9d4659a208b5c5ccada66b
BLAKE2b-256 29081d39320a93b2f6ce65eeb9300cd80666f99fd34bb112739d25750c12f484

See more details on using hashes here.

File details

Details for the file jsonschema_rs-0.49.7-cp315-cp315t-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for jsonschema_rs-0.49.7-cp315-cp315t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2889e90d1d93e45950375a6fc92576c8958d0445c21cefd60835a6d86df10826
MD5 39ea714ff4c63937d8ee0269b4096e59
BLAKE2b-256 b663b6b35b346cb0124499ea55bd90b35e3c559b8b3f4ac7b527db17ad3e5a7b

See more details on using hashes here.

File details

Details for the file jsonschema_rs-0.49.7-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for jsonschema_rs-0.49.7-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 daaaafbb249546188bd45e65cef05cc4d3e656dd41650768e6ae56b174e53080
MD5 321174824b14ecc742faff7b32a8339e
BLAKE2b-256 27395c94d6c2f03da39395b5265b97a66b0d66a7a36b5d7cae2f3bfab7d87ce3

See more details on using hashes here.

File details

Details for the file jsonschema_rs-0.49.7-cp315-cp315t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for jsonschema_rs-0.49.7-cp315-cp315t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 eea0efe573946e57b354c3ade998cdb48910c14650faf3504f0e076aac337e03
MD5 8cba80cf2172b598acea011015083735
BLAKE2b-256 e24f9484b68954f0a8c24b4f06f7ce935b23f9fc9e80ece478ea916d233e589c

See more details on using hashes here.

File details

Details for the file jsonschema_rs-0.49.7-cp315-cp315t-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for jsonschema_rs-0.49.7-cp315-cp315t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 89599190c2c49f249c30b09238a68b3f8651382f1fd1700a7245cde4978acecf
MD5 359e02c6ba7040b42d8e3324a2922200
BLAKE2b-256 72ab02857fad065630fdf92bb194b3b7adea706171f75089ce14e472402737ea

See more details on using hashes here.

File details

Details for the file jsonschema_rs-0.49.7-cp314-cp314t-win_amd64.whl.

File metadata

File hashes

Hashes for jsonschema_rs-0.49.7-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 43e9df94005dad59402ad88f6717a48321fb2e1051006778ea2265d4da0a7df7
MD5 23e4f725f31224aee4aaa1eb65051c61
BLAKE2b-256 c7fdd9477820ec70e77316b5147472f750104d4cf4b8affbae8b6987c63c57a0

See more details on using hashes here.

File details

Details for the file jsonschema_rs-0.49.7-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for jsonschema_rs-0.49.7-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5a41f97d747e527fcef7eac9e56eb20c1c9991ca74b5b03f8164f5936368d5d7
MD5 990c5ab0910b7350cf01b5acdb480adb
BLAKE2b-256 a4a98c3c428dcb970a6055d234d9bec3e47fd84521327ef86515275208a524a7

See more details on using hashes here.

File details

Details for the file jsonschema_rs-0.49.7-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for jsonschema_rs-0.49.7-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d5c1d4d9dfdd29409fc33f58cf05fe34cdc58c3d109b288eba05b7e65c083908
MD5 17f256367b70848853a5fd3611ccc4ad
BLAKE2b-256 edda14a23a8bfbfadd9eeabc5d7d2c3819b09b6f2b3f0f06ab51f18728d8f1aa

See more details on using hashes here.

File details

Details for the file jsonschema_rs-0.49.7-cp314-cp314t-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for jsonschema_rs-0.49.7-cp314-cp314t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0f57602c59318602c61e87443403ac8ce8d44266a81e781a08ca82baba9c0b8c
MD5 469b462345f4a2f9d9b0b0a0429aa6ad
BLAKE2b-256 9be505684a3764b5d4461dbba6874cf9f9d09a2e728aa05094bee84cef105e90

See more details on using hashes here.

File details

Details for the file jsonschema_rs-0.49.7-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for jsonschema_rs-0.49.7-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1a1ebceafe9ac1038ea3f07d5b67c72f8cdbeb83973cc908666f719bc5e85f08
MD5 7a184bc405049b98bf9e70ccb82b1e7e
BLAKE2b-256 4c8cf1563b1ce793dc37ad05b1b1deb599bbb6dfb5dab9aa6babf4dfbd1405ff

See more details on using hashes here.

File details

Details for the file jsonschema_rs-0.49.7-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for jsonschema_rs-0.49.7-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 56439e82b003e017d4adc8692dfa705015199af5b845495b23c69bfe492aa111
MD5 f123f2df8681ad8be2b7d09c8e47debc
BLAKE2b-256 8dbda61bbafec09b731331ab395f42488cde11e58be72c08987b0d95d0451837

See more details on using hashes here.

File details

Details for the file jsonschema_rs-0.49.7-cp314-cp314t-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for jsonschema_rs-0.49.7-cp314-cp314t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 11840646c37a6451fa49c0fc2ee8eb14c56380eb7c9d00cabb3d8d5c87ff9ed4
MD5 628aa0f95277f8fff63035a9b7d323ac
BLAKE2b-256 e906ffbfa2b0b04a783ea017bc607bcdafb7a5462dd7e8e507f01a55a05f139e

See more details on using hashes here.

File details

Details for the file jsonschema_rs-0.49.7-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for jsonschema_rs-0.49.7-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 6d14a4a29ecdcf05fb5e3d92be491308b288f4fc12370fa96bb1d2550dcd65b7
MD5 cbd344a4c38f444e58bfc8b32bdc6f5b
BLAKE2b-256 9b04ac568636d7163102c3290c0817adf053b98146f821374855205044349941

See more details on using hashes here.

File details

Details for the file jsonschema_rs-0.49.7-cp310-abi3-win32.whl.

File metadata

  • Download URL: jsonschema_rs-0.49.7-cp310-abi3-win32.whl
  • Upload date:
  • Size: 4.5 MB
  • Tags: CPython 3.10+, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for jsonschema_rs-0.49.7-cp310-abi3-win32.whl
Algorithm Hash digest
SHA256 8b38ef822f22695b32c74090a72f3007f3ab0b18a6ef41d0086dbd5f965a41d6
MD5 231fa9302af4fcd75ef27f19d8a8e309
BLAKE2b-256 fbf6123230bc3a6d686a4f14038c1bf07b922fc5f36afd4677ca9994d4d37294

See more details on using hashes here.

File details

Details for the file jsonschema_rs-0.49.7-cp310-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for jsonschema_rs-0.49.7-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a2092fd16d917ce8ffe0915c016b5dba1f32bc9b0392559a01d274d2a69f34b7
MD5 7fa076bbd599971f8db69dc5c4ee9482
BLAKE2b-256 4ee85f6ff57b0085bce3fa31881eca25e03496734e23e2df9327fb8c3342924b

See more details on using hashes here.

File details

Details for the file jsonschema_rs-0.49.7-cp310-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for jsonschema_rs-0.49.7-cp310-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d17fd430ddf8942f4db446bcbaf39f16c6ddc3380bb64c6bb06a61cb96f12678
MD5 8efced3f27806df33fb62c9f9b7d2a72
BLAKE2b-256 5cba602e8ed8ec2dc18c739d2ea3281779a3358cf93c656b65724b0e29a33c20

See more details on using hashes here.

File details

Details for the file jsonschema_rs-0.49.7-cp310-abi3-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for jsonschema_rs-0.49.7-cp310-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3cf8b16835880294dfd7ac17821353cfc2568e1c2ff594581f33a2388362a430
MD5 15f6bc6da9370fb95221a46a2c5ee5ad
BLAKE2b-256 716898ec5b48f66414d21ff836c5674906ff2a22e3166f74d5da7fa11d284364

See more details on using hashes here.

File details

Details for the file jsonschema_rs-0.49.7-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for jsonschema_rs-0.49.7-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 286ef95f4448c87c85941937d06edb721ce50d07a6c11290ffaf877437698440
MD5 4c569edffc910684c3973feee3f966fe
BLAKE2b-256 f604aea44f0507943490e933134b1d1b2ee3973ba04d56964f07af76db230ed4

See more details on using hashes here.

File details

Details for the file jsonschema_rs-0.49.7-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for jsonschema_rs-0.49.7-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 a6aca6f4d8c454e3ac3853b4dfc5493c0517e60e5bf76ccc991453a1b45a6085
MD5 448bf77896bc35b002578c2fed9b70f7
BLAKE2b-256 904b9ffebfbf55231f2d5d5a1d56ddc0f6402c88be44449ac9d7f775541e4263

See more details on using hashes here.

File details

Details for the file jsonschema_rs-0.49.7-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for jsonschema_rs-0.49.7-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 1597aac0c1e35dc0bb5c5a5c6f6586c03deb732282d629796acb6a065e18cbe4
MD5 55ea5ed285a3fb2fa9b5cd9fa5d3f131
BLAKE2b-256 d9ad86e58104c180e5a1f87d85657ecc161435db44525917c5dfbe3a418a928b

See more details on using hashes here.

File details

Details for the file jsonschema_rs-0.49.7-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for jsonschema_rs-0.49.7-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 2e307a89ed8cebad722b117aef19040340a116e8c82b3ed2503ff93b32f45b87
MD5 f887564781845feb0dc499bf2b41c9a8
BLAKE2b-256 67a4b3a30426b39485fbc58654598e10d306a160cf4766ea8ac95cdde61d598d

See more details on using hashes here.

Release history Release notifications | RSS feed

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page