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.6.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.6-pp311-pypy311_pp73-win_amd64.whl (5.3 MB view details)

Uploaded PyPyWindows x86-64

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

Uploaded PyPymanylinux: glibc 2.28+ ARM64

jsonschema_rs-0.49.6-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.6-pp311-pypy311_pp73-macosx_10_12_x86_64.whl (5.2 MB view details)

Uploaded PyPymacOS 10.12+ x86-64

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

Uploaded CPython 3.15tWindows x86-64

jsonschema_rs-0.49.6-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.6-cp315-cp315t-musllinux_1_2_aarch64.whl (5.1 MB view details)

Uploaded CPython 3.15tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.15tmanylinux: glibc 2.28+ ARM64

jsonschema_rs-0.49.6-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.6-cp315-cp315t-macosx_11_0_arm64.whl (4.8 MB view details)

Uploaded CPython 3.15tmacOS 11.0+ ARM64

jsonschema_rs-0.49.6-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.6-cp314-cp314t-win_amd64.whl (5.3 MB view details)

Uploaded CPython 3.14tWindows x86-64

jsonschema_rs-0.49.6-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.6-cp314-cp314t-musllinux_1_2_aarch64.whl (5.1 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14tmanylinux: glibc 2.28+ ARM64

jsonschema_rs-0.49.6-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.6-cp314-cp314t-macosx_11_0_arm64.whl (4.8 MB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

jsonschema_rs-0.49.6-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.6-cp310-abi3-win_amd64.whl (5.3 MB view details)

Uploaded CPython 3.10+Windows x86-64

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

Uploaded CPython 3.10+Windows x86

jsonschema_rs-0.49.6-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.6-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.6-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.6-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.6-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.6-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.6-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.6.tar.gz.

File metadata

  • Download URL: jsonschema_rs-0.49.6.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.6.tar.gz
Algorithm Hash digest
SHA256 98c69e25bdb70a59a7f3cd06273bb4b22387a16dce37d5bcc19278a52e846d68
MD5 e539da35a5581bebbee8c662b5877e7e
BLAKE2b-256 a4e59527c2a63342676c40a4d618e05d1b77af8c70d36d14dc6cd61e319e96f3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.6-pp311-pypy311_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 0a3a56bf7b410b0ab92bc2a45ff5790bb28169c7b2ab37c191b790b75eba3038
MD5 cdbf11e52f798d97b8244ed631a1bab2
BLAKE2b-256 aa5341605093e983433ca53c6fb75903e01ff30bfd6d29a7c8eedf17682b063d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.6-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7bece9c06ef4fa2812efe61402af92d82705700e200b3bf199c4e59e1aa73817
MD5 01ae589b68c35b7ca47bbc877630d2b0
BLAKE2b-256 42c21f2cfa5b6bd7f83aae58e71406484e2cc750da9ffccd84911cda9f7f5a31

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.6-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8d15dfc913a89531b4781ca257ae97cb02902919f659b03b16f4b134727c0f75
MD5 351879e93da49e9a62171a627227748f
BLAKE2b-256 923feed93fb61d4c68c8576aaa756d678e148ad0192f7baa423363c48dda5ee2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.6-pp311-pypy311_pp73-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 50e32c9b1bf838bc0eed3834e91875e27e5dab20f5bed1f1a7c742bcae7f402a
MD5 b4f1f46b68f0584babd54333b42b77d0
BLAKE2b-256 8b2dba1d5584a38dafbca87c92bf65d4f7e830becd2ef05bf633d0c8837ad947

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.6-cp315-cp315t-win_amd64.whl
Algorithm Hash digest
SHA256 720fe735e0ec82c7b076e615f46f6ecce9c14d406e57beb92796203acb6186c8
MD5 d65435d80f02e2742d83e702fd9b9f38
BLAKE2b-256 1be5c4169c1ac6d4c7ba4eb3df3a9f8687313978edc75d5a55bc3f6baaa45894

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.6-cp315-cp315t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 598a266440006bb92534fada2c730fe8be23012ba9ff818ae4898cd30f51d687
MD5 c0008ebe361c69f2fbbb9a8c6fa27f0c
BLAKE2b-256 3c6a3316374d2b972ed7e8d5262dcfe40d6778ad9146c2518ddccf86b1e3fb2d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.6-cp315-cp315t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 9daa8c9a5185e03bb57cde96e55cb151f135430a3c54169bed1020e42e6cbde6
MD5 c6906606d37876b7b8d2a2479932f7a9
BLAKE2b-256 7935da4115b2562ba0922ce320d5b27a3bb6197cc8fb7ffc67549018e8cd483a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.6-cp315-cp315t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 95a6645917073b434f617453ea20c8ddda0b3e566f7ea556e76e4c7994d4da6b
MD5 79f731025ff5c302a30701e48be6b35d
BLAKE2b-256 8578bbda03b1b30a55c363f23040efb67f66b2955b4c12afe2bb6dc84c770263

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.6-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f004a689711e15ac8260c3420cafb7b788bbe1f90e66892bb3b505b38f826aa3
MD5 1b3a0e1bdd94033e6e9002cb17ff0f8c
BLAKE2b-256 cf53fdda1b1872846023b1e7a6c2fbdce5e34682d5914e877ddf2ae3401180de

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.6-cp315-cp315t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4b2fcab8f9e44da65c9ea7bb7b89e0ac75ed1e069a94ffd3d31b7f32f3d86c7a
MD5 582d4ed679f1b2f9a41ad198de983841
BLAKE2b-256 20f03012ea7826a5195283dbc684e3b2532240532a82fe9658094ed11692ad27

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.6-cp315-cp315t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f3fa56e862c63ffd981b4d79112b08eb587708129d6eccbbdf4c7a46fcf02539
MD5 97d12407e05110b36a88212b472ffdc1
BLAKE2b-256 65618f89ea3914fa33932e507147d49a6f732c951732c5af62dbc2c042d2a894

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.6-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 755d7a1439a80a6533f92bbded50a57c0a688bd8a46faa7f9991933dfc1c6cca
MD5 066bf46d0074751786c4a7d7bc97d559
BLAKE2b-256 025543e3ad9ac817fe3600a5a324be8a4a9a0b52a9499a60774110e2090fc97b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.6-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 343a6b459e565ff1a6e2890e6465b484dc5ea077cd6a7ff0d899ec8fafdcccc1
MD5 b8061f9b3c2bfa1cfa420a39ea891287
BLAKE2b-256 6f114e38ab7505190d11af91f71c382b4241ef854e2e5df38dc1ef63debbb558

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.6-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 8da2b7e223eaf8e60eba6457bd896a41e4f10a0a162af1a60623c2c72422acfd
MD5 e8abde681385071e322c98fceadd3fda
BLAKE2b-256 71b981cf2c2d07b6d880b142fecec3e02a9b7eeb9791d9e2651613de201e5098

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.6-cp314-cp314t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 118e1efcc17ae6556f76077e224d41dcfbc4712c43c29fc4f9bdc3a9b322bd7e
MD5 3aada3d53f2e126d1756969cf00d18f7
BLAKE2b-256 a10981c3bd796c039411625c2c6c356a3a090c1f0a1b591b71df4d0ab35b6bd6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.6-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8e026f1ca1f6a7e6dc188d46b0ee659d05700960dfbbc5d2672284c3a9f8a65d
MD5 e7105455aef8b6f4cf4857093fe2d068
BLAKE2b-256 09966128a61dc9be2602038611754aa65429c937c8672e6c9fb02c343dd6d35c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.6-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e9108cd2bdb0eaa7dc1b7ad8074c1598de1034926f6b02a8b2dda9c823920630
MD5 718b22b760c3e29bcba111d2d552b0d2
BLAKE2b-256 105787e2e2f52fc732121fd5bd330ddd289b78a325e1ecadb103b86ee612c08d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.6-cp314-cp314t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 0da0376f9c1a5e48e455732c6381487cd8f0fe4ff44b93a929d811f569423acf
MD5 ea4f7400d4bc88d3c0279a7c49a23692
BLAKE2b-256 7ec120ecfa181ab69303e056f310f772eb6b28b40aa26c69c388463f45cbd68a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.6-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 1908015f6879128172b918d0a63fe3964e3193c0826f8f0887302a0f8e683038
MD5 2ac87e0d80e07abe3767906f986cff16
BLAKE2b-256 b3b5ded5588220f10ade0fe3e788be8e59407871e20533721dd7e6baf6329cad

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jsonschema_rs-0.49.6-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.6-cp310-abi3-win32.whl
Algorithm Hash digest
SHA256 0b84eb2fcfabab6fece31973786d1c92aa494ef5e9e17ddaf365566d167399d9
MD5 c45a406fa13255d5cf0c1f6277817878
BLAKE2b-256 16f96af4b955191140e4146384eaf471e46bcdba223ee5ec8d1935a691479d13

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.6-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a88aa591db951cd3d0562f82df1cde8a0f0b98d09d8aad1c33439cdd82f2a202
MD5 ae5eb7e8cc431f5b316279762d92af23
BLAKE2b-256 37e09dbd572c7a69cb708298082b27855620e8246391287a4e8b33ae512bc622

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.6-cp310-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 dc80466e3a9b97429516715ba2eb498d4a873a6f0cf44008154ac384516d29ab
MD5 1c2ef92db2e1c86b53f078c95c8ed515
BLAKE2b-256 6b85542d2f65c6b8fb0c1635808234537edac0d1d7752d57c339d493145c8c9b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.6-cp310-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 83903651c856850ef3ef2a58eb2e5ebb1355e2fcac848503da8110f6b5dfe4b6
MD5 f9c99e14407cb0132e213d5a4d549aa1
BLAKE2b-256 39e6f708943568c22b1b2c3350fa3c2461904f3d1ea9039d9b13e64f23e255f1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.6-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c93bb153ed5d90017734c96d9ce82f59496038087388704cd23244c3dab71d10
MD5 c06046f2c64693b5129f8ad2780e4baf
BLAKE2b-256 aa24b14b27914cfee2d379272a257fa91828855f70744afb1cb7bc9514dd1311

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.6-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 d6da80bf4d859ee220be8b49c3301e2e29c4a818c90fc4590dd30971593dd1ed
MD5 b4c09a6b4b663a33f5915338b840c6ea
BLAKE2b-256 b7d1d0561f90dbe801f8c5a195c803d49b9715aaa212298c61dd12ad9671c7cc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.6-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 e4ad66f3ede59ac9a7252392be00d101827ccea86f3b2db6d76c582282a3c717
MD5 78380b870efba07e9c9be0d5252df65a
BLAKE2b-256 6c736d84591cf5dcb948f8481e4ac72bb4d435dcda33727abfa704037aa5659c

See more details on using hashes here.

File details

Details for the file jsonschema_rs-0.49.6-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.6-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 54730eeb5559c8100adb23c9eec9ee7e724c9d31b0057bbee9abd16ff450292f
MD5 c9eff463329dc59d5c42140b678fb3ff
BLAKE2b-256 34570c4e0f151104b6395d88ec1adf8b694b1515b81e07c537a79d52e4c535af

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