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

Uploaded PyPyWindows x86-64

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

Uploaded PyPymanylinux: glibc 2.28+ ARM64

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

Uploaded PyPymacOS 10.12+ x86-64

jsonschema_rs-0.49.5-cp315-cp315t-win_amd64.whl (5.2 MB view details)

Uploaded CPython 3.15tWindows x86-64

jsonschema_rs-0.49.5-cp315-cp315t-musllinux_1_2_x86_64.whl (5.5 MB view details)

Uploaded CPython 3.15tmusllinux: musl 1.2+ x86-64

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

Uploaded CPython 3.15tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.15tmanylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.15tmacOS 11.0+ ARM64

jsonschema_rs-0.49.5-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.5-cp314-cp314t-win_amd64.whl (5.2 MB view details)

Uploaded CPython 3.14tWindows x86-64

jsonschema_rs-0.49.5-cp314-cp314t-musllinux_1_2_x86_64.whl (5.5 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

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

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14tmanylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.14tmacOS 11.0+ ARM64

jsonschema_rs-0.49.5-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.5-cp310-abi3-win_amd64.whl (5.2 MB view details)

Uploaded CPython 3.10+Windows x86-64

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

Uploaded CPython 3.10+Windows x86

jsonschema_rs-0.49.5-cp310-abi3-musllinux_1_2_x86_64.whl (5.5 MB view details)

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

jsonschema_rs-0.49.5-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.5-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.5-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.5-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (5.0 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ i686

jsonschema_rs-0.49.5-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.5-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (9.9 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.5.tar.gz.

File metadata

  • Download URL: jsonschema_rs-0.49.5.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.5.tar.gz
Algorithm Hash digest
SHA256 4abf0a66ae59d36a594ac475b9f1858b3f20ea7bf0b4e982390aa036fa5830ac
MD5 08fe3213f1a04623c38049d436e228ea
BLAKE2b-256 bffe8aa15e25e0b6620b179a1e7c0e84d2d5dc919c0d09a6a7d3bf40fc9f3862

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.5-pp311-pypy311_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 833c4406097aaa9da413d4556edff4f211e96be82f7a4d388d8b3838563a4ef7
MD5 46fb813bafc8eb613c8ef1d5bddccdee
BLAKE2b-256 5dd16beb072ec5783ddef31f78ac2d885fdde3fbce3590579320a6b1de217ace

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.5-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 28f68fcfade416460924bbfb8db501f412e00aea78be80f7703c974a5c650aed
MD5 5cd88d75af2ac6bffd4e728199d6343f
BLAKE2b-256 b459536f7c0d8838b7dfa8c035e8b8c5ac4e132d59501e7386a84b3514ddca39

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.5-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 af3c220208f853c0211a57bddf8bb600d4561a8dec32f288509f779a8cd805ef
MD5 455171f32b40e53b7ef7859975ce6014
BLAKE2b-256 df0c94cd470e06740b396006690635f24118899fbaeac57e42458668819c40c3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.5-pp311-pypy311_pp73-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 a7998eb65c98dbe65484f125571cbb8b86ad8490fbb7ccd4f794ea5db0538475
MD5 deef458d926ec2e45c7c89a480d1c8d7
BLAKE2b-256 28a93fe9019b4fbe803e610e1fdc3b55e13bc6dcfbb574e65c15abfa21767047

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.5-cp315-cp315t-win_amd64.whl
Algorithm Hash digest
SHA256 34defac513f1a57a0097a68242fa91371a953e65ce1cca736e11196c72ef66e9
MD5 25ae85854608bfbf9dc7eade1c1c9b00
BLAKE2b-256 6d22ccc989020ba7f99b11772adcea8d20fa14b493d783d960904aac66e22128

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.5-cp315-cp315t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 841c9b62de1e91ae8b936232f835eadc12cec61c20dea93295aa01be3a74b80e
MD5 37b14542eabc57f7bbd0993221c0bb31
BLAKE2b-256 c44f88d40921fd75801f4fa7c9901d3dcd1bc6ece7386bfefbda9947772df368

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.5-cp315-cp315t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 082fdeb3d35333657907428621ad3ab167f615373f8cd88302a8b00ba358b296
MD5 0b6c3a021a34aa7b3932878c006f8c70
BLAKE2b-256 1ad13d7eb6534905b192d8e26655cd78cda3c4e82068ea9a86e793c425b4302e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.5-cp315-cp315t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2be4af9b38b3b6ebcb3fdd79a0fca4512af2b8227293e849e8d1d7017f9e63d7
MD5 5a3ab3ac540e9dd05026d3edc8f91ec0
BLAKE2b-256 d78b62430f3a46088a31107d9f296470949d8611a385293e09e3c81c28abd477

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.5-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 805f5325cc25e8b104f01fdde360cf9f0665779f9e1dbd92c850a4f82fc305de
MD5 53736b2a5d8c9dd98006b4338aa211ce
BLAKE2b-256 1cb63f99e0e8b2a3d6d160a294da0fe1158a135b7d9bf08e6f3e010489cbb4d8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.5-cp315-cp315t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 65a3b7eb0a2dfa7135d16726a61742785c9d3c2a0fcad09ca456c57b8d6f500c
MD5 09ad9253382806bde9671c1198b6b2f1
BLAKE2b-256 780b2b2b8dfd24210051bd6e6d946c79ea41d026b226bfe9a70ee01d3d3e2639

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.5-cp315-cp315t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5ddcdd01ab5fb1ca1d53af67552510cd4900dd5931568689267695007596d027
MD5 533d9ab7942550a7ccc4c7a383b3b2d7
BLAKE2b-256 d47ca812e100a7ad14c6f0c9cb85f49d324627c0d129bd978cc24537eb1c6c42

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.5-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 b33cb89b55d4e3e4e7d769fb94421f187bd2a9d1b354b8802dd37690d832c732
MD5 3a4504ff2d04aca49352a245cfd886d8
BLAKE2b-256 7fcde580adb58300922cc6d47c379e15a17cd5995948370cb178265061c60f80

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.5-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 358af1255a2496a454de938ac9fd5f46d7727de2ceb0578b5a226bedafa65b82
MD5 0d4bd2c06d36e6f4a75b206999094c23
BLAKE2b-256 14d59594c29d040d87b0af7b09347682f35db262999c1031da9d52f737bb1df3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.5-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 94128c579ee1883a1c22e25889d6b9ce1037d1bbedcfba08a77c65384fdccc33
MD5 7c9a87e94a0e850c72ee00965a7db95f
BLAKE2b-256 b4eced3d681fbda782873dd624413c16322459d7cb1c75abef19e81f2af903e4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.5-cp314-cp314t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a270b21fda0ed9d1b550608b3b0a61bb867184cea6cea9ca8381135fa1c0ac90
MD5 0ef03112f02bb27e9f6e72916525d467
BLAKE2b-256 58fbfd16c27d9771d39dd456e88ccae6e08034a4b6fa59e5cc8926abcbc65862

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.5-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c035351830e1cc88da44e3777820f94b990eddc6054d3f2a8b5495815c753d70
MD5 ea3f6dc1e02571506d9569b2a78cfcde
BLAKE2b-256 a5375dde5e57fa2b8d6e1d50627d336b850ed700af5d50ca69f863afee6aa6cd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.5-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a5db23b5ad93d74433e20a4c222e311cf2bbebc61a21453d047fdd824ef360fb
MD5 2ca874b27b2c13e8c456401047ae4f6e
BLAKE2b-256 f22a5d07b1212e519181de49cb72ba413fe4a18b5bfa94ec454325ad6be0df3f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.5-cp314-cp314t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 95388ea1f1d93728420c1eb53eba2cdc81da60a467a5145c58434097e0c7a4e1
MD5 8fd37dccc1a657b5d7129e6880ae804e
BLAKE2b-256 959d5486a92b397e29b398dc6d4ff393f40f4a6b486c50fa59e35bdffbdd75a2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.5-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 e7b638e0193c7f37fe64dcdc2fa68ca7956e2f609b28d7cdb963b29feb2e1325
MD5 c8542adac8139acbbaae65caaee071e9
BLAKE2b-256 c7791ad5db8242cc2a998f05c1c2ad59ec10e5b8e3e35f987b473d5d73f1a7b3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jsonschema_rs-0.49.5-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.5-cp310-abi3-win32.whl
Algorithm Hash digest
SHA256 9e72ab68dea34651285d5002ccaeaae6e02c36a17c2d12fd90cf43c81f2bbee2
MD5 e3ec2add5dcfd7b9a13dc7b7af9c87a9
BLAKE2b-256 bae9a2460c66c6a97cbb05d444b3113396cdba52e6e71fac5a4121f8d7ff5f6b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.5-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2cc843f3618c15d4670424b145001b80e0d2eb91d79addeddeff86e03a235432
MD5 7594be88a51e7e14665a9c8e21fe67a4
BLAKE2b-256 5b8852e3a4a52816778cfa14d4e116c5da672b55e2d4232fe26aa8800eb4969d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.5-cp310-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 85c88ab5666ff98704e3416d526860f8803318bbc5dbb608eea3f85cef221fd6
MD5 b634b90586545c7a0997797e0292e667
BLAKE2b-256 ab64f3d14a9e2df0b98cb19a3bc964c1306121b6823f5c605c5c9c01fb857e69

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.5-cp310-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f7de1b112ad12b9639b0a5a14cbcded495f35ef3c1bdac915bea82adcd5a10b5
MD5 201793d619f2cca8779db69b7881e701
BLAKE2b-256 c5698944e7e7d538867db4ba6e2d79cc390281f5bf811dbe873c2031bbb0a251

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.5-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4a217c504f448668d9996286cb53b6493a4ec4a95f86cd0c3958b5011098fc92
MD5 766d696b9cef6a9cc238ab5d7b414ccc
BLAKE2b-256 d87b427f47e3972e48791c303ed7a8f99ebfafbc566325d944f2e56ad294278b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.5-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 965efc8963b78f4ea51e3a1af4f6ba1e3718a2938c211edea7d5e7634f90d7ff
MD5 225646a38910ce7acafef398c231feb3
BLAKE2b-256 2ddcf7b317a605d4285b7101594282ef20ee1a4953c9de41dfd18b8e66416733

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.49.5-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 6d8073fb2f8dccd888b76ede7c541f85fe9016845d22a68c78035f11f10ef78c
MD5 565b8c9d85e114e4333cdc1d4264e163
BLAKE2b-256 d27743145cd006e0e6ebd14eafc598203e70c347435fc95394a056049f7ee813

See more details on using hashes here.

File details

Details for the file jsonschema_rs-0.49.5-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.5-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 53cc4689f57846e5c7e66a02864cc3a304d536690cc93710cef67294a09ee137
MD5 cd8017ca18be18daa3aaa2d304e3585b
BLAKE2b-256 b449ddf25efc12585695fc79f4ab5ecbd596b43b9921c4cec75e7a2c911a4a81

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