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? See the Migration Guide for breaking changes.

Migrating from jsonschema? See the jsonschema migration guide.

Highlights

  • 📚 Drafts 4, 6, 7, 2019-09 and 2020-12
  • 🔧 Custom keywords and format validators
  • ⚡ Compile-time validators for your own extension modules, via the Rust crate
  • 🌐 $ref resolution over HTTP and from files
  • 📦 Schema bundling into Compound Schema Documents, and $ref dereferencing
  • 🎨 Structured Output v1 reports (flag/list/hierarchical)
  • ✨ Meta-schema validation for schema documents, including custom metaschemas
  • 🧮 Experimental schema canonicalization

Supported drafts

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

Per-draft compliance results are on the Bowtie Report.

Playground

Try schemas in the browser with the WebAssembly playground.

Installation

pip install jsonschema-rs

Usage

Pass a schema as a JSON string to skip parsing it in Python:

import jsonschema_rs

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

validator_for detects the draft from $schema. To pick one yourself, use a draft-specific class:

import jsonschema_rs

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

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

jsonschema-rs ships validators for the standard format values. To add your own, pass a function that takes a str and returns a bool via formats. Drafts 2019-09 and 2020-12 treat format as an annotation, so set validate_formats=True to get it checked:

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

A custom keyword is a class. The validator builds one instance per occurrence of the keyword, passing the parent schema, the keyword value and its schema path. Its validate method rejects a value by raising any exception, whose message becomes the error message:

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

The resulting ValidationError keeps that exception as __cause__:

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

Other options:

  • validate_formats: check format regardless of the draft default.
  • ignore_unknown_formats: set to False to raise on a format value with no validator.
  • base_uri: base URI for relative $refs in the schema.
  • vocabularies: vocabularies your custom keywords implement.
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, an unknown format raises 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 exc.message == (
        "Unknown format: 'unknown'. "
        "Adjust configuration to ignore unrecognized formats"
    )

Structured Output with evaluate

evaluate returns the JSON Schema Output v1 formats instead of a boolean:

import jsonschema_rs

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

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_error,
        },
        {
            "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_error,
                        }
                    ],
                }
            ],
        },
        {
            "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"',
    }
]

# A failing schema produces no annotations
assert evaluation.annotations() == []

Arbitrary-Precision Numbers

Numbers keep their full precision on the way to Python:

  • 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.

So ValidationError.kind attributes can hold Decimal values:

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")

# Exponents beyond ~10^1_000_000 are clamped to keep parsing predictable

Schema Bundling and Dereferencing

Produce a Compound Schema Document (Appendix B) by embedding all external $ref targets into a draft-appropriate container. The bundle accepts the same values as 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)

dereference instead replaces each $ref with the schema it points to, for consumers that do not resolve references. Circular references are left in place.

dereferenced = jsonschema_rs.dereference(schema, registry=registry)

Schema Canonicalization

Experimental: the canonicalization API may change in minor releases.

canonicalize reduces a schema to a normal form that accepts the same values. Schemas that accept the same values reduce to equal CanonicalSchema objects, and a schema proven to accept nothing reduces to false:

import jsonschema_rs

canonical = jsonschema_rs.canonicalize({
    "allOf": [
        {"type": "integer", "minimum": 0},
        {"minimum": 10, "maximum": 100},
    ]
})
assert canonical.to_json_schema() == {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "integer", "minimum": 10, "maximum": 100,
}

# However they were written, equivalent schemas compare equal
same = jsonschema_rs.canonicalize(
    {"type": "integer", "maximum": 100, "minimum": 10}
)
assert canonical == same

# A schema no value can satisfy collapses
from jsonschema_rs.canonical import Satisfiability

empty = jsonschema_rs.canonicalize(
    {"type": "integer", "minimum": 10, "maximum": 5}
)
assert empty.satisfiability() == Satisfiability.NO

A schema the canonical form cannot model exactly comes back unchanged, with kind == CanonicalKind.RAW. Its view().reason names what stopped the run, and view().pointer the subschema at fault when a single one is.

Canonical schemas combine like sets of values. Every emitted schema carries $schema; the comments below leave it out:

positive = jsonschema_rs.canonicalize({"type": "integer", "minimum": 0})
bounded = jsonschema_rs.canonicalize({"type": "integer", "maximum": 100})

# Every value both admit
positive.intersect(bounded).to_json_schema()
# {"type": "integer", "minimum": 0, "maximum": 100}

# Every value either admits
positive.union(bounded).to_json_schema()
# {"type": "integer"}

# Every value `positive` admits and `bounded` rejects
positive.subtract(bounded).to_json_schema()
# {"type": "integer", "minimum": 101}

# Every value `positive` rejects: other types, negative integers
# and non-integer numbers
positive.negate().to_json_schema()
# {"anyOf": [{"type": ["null", "boolean", "string", "array", "object"]},
#            {"type": "integer", "maximum": -1},
#            {"type": "number", "not": {"multipleOf": 1}}]}

# Containment.NO: `bounded` takes negative integers, `positive` does not
positive.covers(bounded)
positive.satisfiability()  # Satisfiability.YES

Comparing two versions of a schema

subtract tells you what an edit did to a schema. old.subtract(new) accepts exactly the values old accepts and new rejects, so it accepts nothing when the edit lost nothing.

old = jsonschema_rs.canonicalize({"type": "string"})
new = jsonschema_rs.canonicalize({"type": "string", "maxLength": 50})

# What `new` stopped accepting, as a schema
assert old.subtract(new).to_json_schema() == {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "string", "minLength": 51,
}
# Nothing is accepted that was not accepted before, so the change only narrows
assert new.subtract(old).satisfiability() == Satisfiability.NO

The direction to check depends on who sends the value:

  • For a request schema, check old.subtract(new). It accepts the payloads existing callers send that the new schema rejects.
  • For a response schema, check new.subtract(old). It accepts the values the new schema lets a server return that callers never agreed to read.

Satisfiability.NO on the difference proves the edit safe in that direction. UNKNOWN means the canonicalizer could not decide, and proves nothing either way. Read it as the answer that keeps you safe:

  • satisfiability(): only Satisfiability.NO proves a schema accepts nothing. Treat UNKNOWN like YES.
  • a.covers(b): only Containment.YES proves a accepts every value b accepts. Treat UNKNOWN like NO.

Containment, Satisfiability, Distinctness, CanonicalKind, UnsatisfiableReason, Cause and the exceptions below live in jsonschema_rs.canonical.

The set operations raise IncompatibleOperands when the operands differ in draft, format assertion or regular-expression engine, or resolve # or one external resource to different schemas. They raise UnsupportedOperand when an operand is RAW, and UnsupportedResult when the canonical form cannot express the result exactly. All three subclass CanonicalizationError.

Finding the dead subschemas of a document

find_unsatisfiable walks a whole document and reports each subschema that accepts no value, with the keywords at fault and their pointers:

from jsonschema_rs.canonical import UnsatisfiableReason, find_unsatisfiable

reasons = find_unsatisfiable({
    "properties": {
        "tag": {"type": "string", "minLength": 5, "maxLength": 2},
        "name": {"type": "string"},
    }
})

match reasons["/properties/tag"]:
    case UnsatisfiableReason.Conflict(causes):
        assert [(cause.pointer, cause.keywords) for cause in causes] == [
            ("/properties/tag", ["type"]),
            ("/properties/tag", ["minLength", "maxLength"]),
        ]

# A live subschema is not reported
assert "/properties/name" not in reasons

A reason is Literal (written as false), Empty (one part admits nothing by itself) or Conflict (each part admits values, together they admit none). A missing pointer does not prove that subschema satisfiable. For a document the canonical form cannot model, find_unsatisfiable reports nothing, the same way satisfiability() answers UNKNOWN.

Meta-Schema Validation

jsonschema_rs.meta checks a schema against the meta-schema of its draft:

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

pattern_options picks the regex engine for pattern and patternProperties and sets its limits:

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
    )
)
  • FancyRegexOptions: default engine, supports lookaround and backreferences

    • backtrack_limit: Maximum backtracking steps
    • size_limit: Maximum compiled regex size in bytes
    • dfa_size_limit: Maximum DFA cache size in bytes
  • RegexOptions: matches in linear time, no lookaround or backreferences

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

If you validate against schemas from untrusted sources, use RegexOptions: a crafted pattern cannot make it backtrack.

Email Format Configuration

email_options makes {"format": "email"} stricter or looser than the spec default:

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 at least 3 domain segments, e.g. user@sub.example.com
validator = jsonschema_rs.validator_for(
    {"format": "email", "type": "string"},
    validate_formats=True,
    email_options=EmailOptions(minimum_sub_domains=3),
)
  • require_tld: Require a top-level domain (e.g., reject "user@localhost") (default: False)
  • 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 fetches external $ref targets over HTTP and from the local file system. Pass a retriever to load them yourself. This one serves schemas from a dict:

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

For schemas from untrusted sources, pass offline=True. The validator then refuses to fetch any $ref target, so a schema cannot reach your network or file system. Schemas held in a Registry still resolve:

try:
    jsonschema_rs.validator_for(
        {"$ref": "https://example.com/other.json"}, offline=True
    )
except jsonschema_rs.ValidationError as exc:
    assert "Retrieval is disabled" in str(exc)

bundle, dereference and canonicalize take offline too.

Schema Registry

A Registry holds schemas by URI, so a validator resolves $refs to them without fetching anything:

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"}
})

Registry also takes a default draft and a retriever for URIs it does not hold:

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

A ValidationError carries the message, both locations and a kind with keyword-specific details:

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}")

The type stubs list every error kind and its attributes.

Error Kind Properties

kind also has generic 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}

Each kind is a class you can match on:

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

Pass mask to replace instance values in error messages with a placeholder:

import jsonschema_rs

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

# Replace instance 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

Compared with other Python validators:

  • 138-10,841x faster than jsonschema for complex schemas and large instances
  • 8-1,848x faster than fastjsonschema on CPython

Full results and methodology are in BENCHMARKS.md.

Compile-Time Validators

If you ship your own extension module and know the schema at build time, the Rust crate's #[jsonschema::validator(..., backend = Pyo3)] macro compiles it into a validator that reads Python objects directly, so nothing is parsed or compiled when your module is imported, and validation runs up to 4.8x faster than with a validator built at run time. See the macro documentation.

This is not available from the jsonschema-rs package on PyPI, which takes its schemas at run time. A complete extension with its build and test commands lives in examples/pyo3-extension.

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, arm64

Troubleshooting

If a source build on Linux fails with linking errors (e.g., undefined symbols from ring), use the mold linker:

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

Acknowledgements

The API design draws on the Python jsonschema package. Thanks to its maintainers and contributors.

Support

Ask questions and suggest improvements in GitHub Discussions.

Sponsorship

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

Contributing

Ways to help:

See CONTRIBUTING.md for more details.

License

Licensed under MIT License.

Metadata

Release files for jsonschema-rs 0.60.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jsonschema-rs 0.60.1
File Size Uploaded Provenance Actions
jsonschema_rs-0.60.1.tar.gz 2.9 MB Without provenance Details for jsonschema_rs-0.60.1.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for jsonschema-rs 0.60.1
File Actions
jsonschema_rs-0.60.1-pp311-pypy311_pp80-win_amd64.whl PyPy 3.11 PyPy 3.11 8.0 Windows x86-64 Details for jsonschema_rs-0.60.1-pp311-pypy311_pp80-win_amd64.whl
jsonschema_rs-0.60.1-pp311-pypy311_pp80-macosx_10_12_x86_64.whl PyPy 3.11 PyPy 3.11 8.0 macOS 10.12+ x86-64 Details for jsonschema_rs-0.60.1-pp311-pypy311_pp80-macosx_10_12_x86_64.whl
jsonschema_rs-0.60.1-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl PyPy 3.11 PyPy 3.11 7.3 Linux glibc 2.28+ ARM64 Details for jsonschema_rs-0.60.1-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl
jsonschema_rs-0.60.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl PyPy 3.11 PyPy 3.11 7.3 Linux glibc 2.17+ x86-64 Details for jsonschema_rs-0.60.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
jsonschema_rs-0.60.1-cp315-cp315t-win_arm64.whl CPython 3.15 CPython 3.15 free-threading Windows ARM64 Details for jsonschema_rs-0.60.1-cp315-cp315t-win_arm64.whl
jsonschema_rs-0.60.1-cp315-cp315t-win_amd64.whl CPython 3.15 CPython 3.15 free-threading Windows x86-64 Details for jsonschema_rs-0.60.1-cp315-cp315t-win_amd64.whl
jsonschema_rs-0.60.1-cp315-cp315t-musllinux_1_2_x86_64.whl CPython 3.15 CPython 3.15 free-threading Linux musl 1.2+ x86-64 Details for jsonschema_rs-0.60.1-cp315-cp315t-musllinux_1_2_x86_64.whl
jsonschema_rs-0.60.1-cp315-cp315t-musllinux_1_2_aarch64.whl CPython 3.15 CPython 3.15 free-threading Linux musl 1.2+ ARM64 Details for jsonschema_rs-0.60.1-cp315-cp315t-musllinux_1_2_aarch64.whl
jsonschema_rs-0.60.1-cp315-cp315t-manylinux_2_28_aarch64.whl CPython 3.15 CPython 3.15 free-threading Linux glibc 2.28+ ARM64 Details for jsonschema_rs-0.60.1-cp315-cp315t-manylinux_2_28_aarch64.whl
jsonschema_rs-0.60.1-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ x86-64 Details for jsonschema_rs-0.60.1-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
jsonschema_rs-0.60.1-cp315-cp315t-macosx_11_0_arm64.whl CPython 3.15 CPython 3.15 free-threading macOS 11.0+ ARM64 Details for jsonschema_rs-0.60.1-cp315-cp315t-macosx_11_0_arm64.whl
jsonschema_rs-0.60.1-cp315-cp315t-macosx_10_12_x86_64.whl CPython 3.15 CPython 3.15 free-threading macOS 10.12+ x86-64 Details for jsonschema_rs-0.60.1-cp315-cp315t-macosx_10_12_x86_64.whl
jsonschema_rs-0.60.1-cp314-cp314t-win_arm64.whl CPython 3.14 CPython 3.14 free-threading Windows ARM64 Details for jsonschema_rs-0.60.1-cp314-cp314t-win_arm64.whl
jsonschema_rs-0.60.1-cp314-cp314t-win_amd64.whl CPython 3.14 CPython 3.14 free-threading Windows x86-64 Details for jsonschema_rs-0.60.1-cp314-cp314t-win_amd64.whl
jsonschema_rs-0.60.1-cp314-cp314t-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64 Details for jsonschema_rs-0.60.1-cp314-cp314t-musllinux_1_2_x86_64.whl
jsonschema_rs-0.60.1-cp314-cp314t-musllinux_1_2_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARM64 Details for jsonschema_rs-0.60.1-cp314-cp314t-musllinux_1_2_aarch64.whl
jsonschema_rs-0.60.1-cp314-cp314t-manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ ARM64 Details for jsonschema_rs-0.60.1-cp314-cp314t-manylinux_2_28_aarch64.whl
jsonschema_rs-0.60.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 Details for jsonschema_rs-0.60.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
jsonschema_rs-0.60.1-cp314-cp314t-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 Details for jsonschema_rs-0.60.1-cp314-cp314t-macosx_11_0_arm64.whl
jsonschema_rs-0.60.1-cp314-cp314t-macosx_10_12_x86_64.whl CPython 3.14 CPython 3.14 free-threading macOS 10.12+ x86-64 Details for jsonschema_rs-0.60.1-cp314-cp314t-macosx_10_12_x86_64.whl
jsonschema_rs-0.60.1-cp310-abi3-win_arm64.whl CPython 3.10 abi3 Windows ARM64 Details for jsonschema_rs-0.60.1-cp310-abi3-win_arm64.whl
jsonschema_rs-0.60.1-cp310-abi3-win_amd64.whl CPython 3.10 abi3 Windows x86-64 Details for jsonschema_rs-0.60.1-cp310-abi3-win_amd64.whl
jsonschema_rs-0.60.1-cp310-abi3-win32.whl CPython 3.10 abi3 Windows x86-32 Details for jsonschema_rs-0.60.1-cp310-abi3-win32.whl
jsonschema_rs-0.60.1-cp310-abi3-musllinux_1_2_x86_64.whl CPython 3.10 abi3 Linux musl 1.2+ x86-64 Details for jsonschema_rs-0.60.1-cp310-abi3-musllinux_1_2_x86_64.whl
jsonschema_rs-0.60.1-cp310-abi3-musllinux_1_2_aarch64.whl CPython 3.10 abi3 Linux musl 1.2+ ARM64 Details for jsonschema_rs-0.60.1-cp310-abi3-musllinux_1_2_aarch64.whl
jsonschema_rs-0.60.1-cp310-abi3-manylinux_2_28_aarch64.whl CPython 3.10 abi3 Linux glibc 2.28+ ARM64 Details for jsonschema_rs-0.60.1-cp310-abi3-manylinux_2_28_aarch64.whl
jsonschema_rs-0.60.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 abi3 Linux glibc 2.17+ x86-64 Details for jsonschema_rs-0.60.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
jsonschema_rs-0.60.1-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl CPython 3.10 abi3 Linux glibc 2.17+ x86-32 Details for jsonschema_rs-0.60.1-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
jsonschema_rs-0.60.1-cp310-abi3-macosx_11_0_arm64.whl CPython 3.10 abi3 macOS 11.0+ ARM64 Details for jsonschema_rs-0.60.1-cp310-abi3-macosx_11_0_arm64.whl
jsonschema_rs-0.60.1-cp310-abi3-macosx_10_12_x86_64.whl CPython 3.10 abi3 macOS 10.12+ x86-64 Details for jsonschema_rs-0.60.1-cp310-abi3-macosx_10_12_x86_64.whl

Total release size: 182.3 MB

Release files / jsonschema_rs-0.60.1.tar.gz

Download URL jsonschema_rs-0.60.1.tar.gz
Size 2.9 MB
Tags Source
SHA-256 checksum
How to use checksums
5ae9fe266db602c9b6d47e64463c5be968f71616e9f80f89f2535a1bb719a4bb
BLAKE2b-256 checksum
How to use checksums
d9082488c962c74830ba56807a495499d2c0e3ad0163fc38bcf11a03fb6af074
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jsonschema_rs-0.60.1-pp311-pypy311_pp80-win_amd64.whl

Download URL jsonschema_rs-0.60.1-pp311-pypy311_pp80-win_amd64.whl
Size 6.2 MB
Tags PyPy 3.11 PyPy 3.11 8.0 Windows x86-64
SHA-256 checksum
How to use checksums
ba919a1ebe673920af6c3309bb2f2a871d73d8cc17e235c5e7039ac147d2b8c5
BLAKE2b-256 checksum
How to use checksums
fa62d56d1f1a62a87ecf55621c54ab4d38d7139d666023c882ad82a11b890b25
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jsonschema_rs-0.60.1-pp311-pypy311_pp80-macosx_10_12_x86_64.whl

Download URL jsonschema_rs-0.60.1-pp311-pypy311_pp80-macosx_10_12_x86_64.whl
Size 6.0 MB
Tags PyPy 3.11 PyPy 3.11 8.0 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
78d3299eb40be00accd1cc90b4ce7a61bf79157adc65346422ef586d9f58642b
BLAKE2b-256 checksum
How to use checksums
c933ad034880bb59208d3cafe5737c4595df2d2ba7979152d0763dcfa9696fcd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jsonschema_rs-0.60.1-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl

Download URL jsonschema_rs-0.60.1-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl
Size 5.7 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
4035398f70d7ebdbbcb8d41419136ee84c467793c25d4c38e7eff583f6b38591
BLAKE2b-256 checksum
How to use checksums
f010958a2a97c5b9e5e151922ad1eff8a650594ca939d9bbc5ddc10a65240589
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jsonschema_rs-0.60.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL jsonschema_rs-0.60.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 6.2 MB
Tags Linux glibc 2.17+ x86-64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
6fd1c7932cb7a1eb5c2bfddb16a1b450b9acc84133d1c510a42efe43374536ec
BLAKE2b-256 checksum
How to use checksums
22e47b821ab6b2e3059c31ba9dc7e0b5d9c94804f9f248b8c144098bfd36be25
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jsonschema_rs-0.60.1-cp315-cp315t-win_arm64.whl

Download URL jsonschema_rs-0.60.1-cp315-cp315t-win_arm64.whl
Size 5.9 MB
Tags CPython 3.15 CPython 3.15 free-threading Windows ARM64
SHA-256 checksum
How to use checksums
854cf9c3947071fb907ff260ba5d32a8586dafbf943cd4ea724b237e56b4b272
BLAKE2b-256 checksum
How to use checksums
e594280a6c077cbdf5ed9c5ec0dbccc7cde78d41ee3d43cb9172b40b6170e7a2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jsonschema_rs-0.60.1-cp315-cp315t-win_amd64.whl

Download URL jsonschema_rs-0.60.1-cp315-cp315t-win_amd64.whl
Size 6.3 MB
Tags CPython 3.15 CPython 3.15 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
920b0c0b53c47e35d0e676a172f5e91a4e08845d703e750a0bfe12ae760d8b2e
BLAKE2b-256 checksum
How to use checksums
c86c76dd3e60dbdc54ade2e6e4fa6376aba2dd045ed1899214ae7bba02191d9f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jsonschema_rs-0.60.1-cp315-cp315t-musllinux_1_2_x86_64.whl

Download URL jsonschema_rs-0.60.1-cp315-cp315t-musllinux_1_2_x86_64.whl
Size 6.5 MB
Tags CPython 3.15 CPython 3.15 free-threading Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
44fed238e8f1fbd35e20e4a2f7b397e2bcd43752ef11599c61c844410a67a1d2
BLAKE2b-256 checksum
How to use checksums
896651cd4687e0e4162ee8e89f4b4bf2d02e5cea1259cbfe6f515f6216e70e37
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jsonschema_rs-0.60.1-cp315-cp315t-musllinux_1_2_aarch64.whl

Download URL jsonschema_rs-0.60.1-cp315-cp315t-musllinux_1_2_aarch64.whl
Size 5.9 MB
Tags CPython 3.15 CPython 3.15 free-threading Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
76f2c1254ba2eadc31b1ed6bbb1a05dcf3b2787774b27726874ce4bd0333782a
BLAKE2b-256 checksum
How to use checksums
3736e0bc5df8370c71a6b341377114ef31b6de44c7581b0853d0a32730346344
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jsonschema_rs-0.60.1-cp315-cp315t-manylinux_2_28_aarch64.whl

Download URL jsonschema_rs-0.60.1-cp315-cp315t-manylinux_2_28_aarch64.whl
Size 5.7 MB
Tags CPython 3.15 CPython 3.15 free-threading Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
784aa10b16c8d9904ba6bbcd6827aa37db74ba614c4fe912a96d70701c16f54a
BLAKE2b-256 checksum
How to use checksums
944e46364d1ff2ed47d254278bc64af20961f051ba1dc716038b3499e5866fec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jsonschema_rs-0.60.1-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL jsonschema_rs-0.60.1-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 6.3 MB
Tags CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
cee40e91295b594a27da207ef39fac3a29c332f019558f4aa2a379ecaa9ea7c1
BLAKE2b-256 checksum
How to use checksums
b530ccd315ffc3e6a89060d2e72834814811130e859e2d4f33543feeda1b0a27
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jsonschema_rs-0.60.1-cp315-cp315t-macosx_11_0_arm64.whl

Download URL jsonschema_rs-0.60.1-cp315-cp315t-macosx_11_0_arm64.whl
Size 5.6 MB
Tags CPython 3.15 CPython 3.15 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
9b3e2903ed0d933eb114e51ec400a1d48979aaa9aea68c3e6bab214e83826809
BLAKE2b-256 checksum
How to use checksums
5cbdd8a83bc9cab406ca0c738edc8546bdda8f50c3bc3523e012b589e1e7a989
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jsonschema_rs-0.60.1-cp315-cp315t-macosx_10_12_x86_64.whl

Download URL jsonschema_rs-0.60.1-cp315-cp315t-macosx_10_12_x86_64.whl
Size 6.1 MB
Tags CPython 3.15 CPython 3.15 free-threading macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
c5018eeac6de3bbe828e589f7e93c4f0903fd6cb76c0cd3a26f0749a2238fc1d
BLAKE2b-256 checksum
How to use checksums
875789beaecda8871bdadfe68bfdbac856b5403da65972210ed8aa713f4835b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jsonschema_rs-0.60.1-cp314-cp314t-win_arm64.whl

Download URL jsonschema_rs-0.60.1-cp314-cp314t-win_arm64.whl
Size 5.9 MB
Tags CPython 3.14 CPython 3.14 free-threading Windows ARM64
SHA-256 checksum
How to use checksums
35d05e2c05b500b3177c9135ce448c0741b415de4632934314603682f705c8c4
BLAKE2b-256 checksum
How to use checksums
ef0e356dac98b90e5890873fa1d0f2fadedb1087473af64e3f849a030ae94f8b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jsonschema_rs-0.60.1-cp314-cp314t-win_amd64.whl

Download URL jsonschema_rs-0.60.1-cp314-cp314t-win_amd64.whl
Size 6.3 MB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
c4b6d35f32239d926a9a7277b1015a82f602bca41b54923932613ff683e4c7ad
BLAKE2b-256 checksum
How to use checksums
9d069d2d48e97d8569d5a6679fc90d4357feb3024a620bd7b72a391df044ef96
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jsonschema_rs-0.60.1-cp314-cp314t-musllinux_1_2_x86_64.whl

Download URL jsonschema_rs-0.60.1-cp314-cp314t-musllinux_1_2_x86_64.whl
Size 6.5 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
8748b4b84dcffb498b16d228bda7985b588039037d06accacfea5b7429751925
BLAKE2b-256 checksum
How to use checksums
8320120e932a12dcf844f31b0a6bdaae5c41d2cd45b63b175873244466318fb9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jsonschema_rs-0.60.1-cp314-cp314t-musllinux_1_2_aarch64.whl

Download URL jsonschema_rs-0.60.1-cp314-cp314t-musllinux_1_2_aarch64.whl
Size 5.9 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
ecbb81edaf1c1f6eb53889ae886bc0e16d9e7946d15bbe5783b318c001ce6ecb
BLAKE2b-256 checksum
How to use checksums
9135918e9dab26ee23fcf9d724f89bc78661fd34e3baba6cf1bcc65288164da8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jsonschema_rs-0.60.1-cp314-cp314t-manylinux_2_28_aarch64.whl

Download URL jsonschema_rs-0.60.1-cp314-cp314t-manylinux_2_28_aarch64.whl
Size 5.7 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
36126d6c07b910a42e6d4a46aa3038bb3220c3a53d9287bb2973cdc2724e983d
BLAKE2b-256 checksum
How to use checksums
0617da388d18d02117d8ad7c33a873ff1425c4c6cdf186fdd731a2d3e87d604f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jsonschema_rs-0.60.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL jsonschema_rs-0.60.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 6.3 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
46af43080d41f48741e808e6ffb406ae4148550ae1bc86f83576ac6dddad1bcc
BLAKE2b-256 checksum
How to use checksums
75caa56784063f7705d2b815f401550132e8baa1cb60fa2b8ebcdd40773332d1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jsonschema_rs-0.60.1-cp314-cp314t-macosx_11_0_arm64.whl

Download URL jsonschema_rs-0.60.1-cp314-cp314t-macosx_11_0_arm64.whl
Size 5.6 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
d4b62f1112b28504ca2c19e6e5fcdd2c0e153d1aa5ae942914fdccb0ca3eb98e
BLAKE2b-256 checksum
How to use checksums
9594362016e6297c6403d889519beb089f48e580fc3a56f82e048cbcddbe2f81
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jsonschema_rs-0.60.1-cp314-cp314t-macosx_10_12_x86_64.whl

Download URL jsonschema_rs-0.60.1-cp314-cp314t-macosx_10_12_x86_64.whl
Size 6.1 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
7f22a4ce31b7c73408b5f8e2df267c67fde97b1a7e254d1cef98a5f356c54f06
BLAKE2b-256 checksum
How to use checksums
0cfeaa6d32d21b8d32c07cebdd5e9f7a8953839eb0c91d4432c32e442ef5381f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jsonschema_rs-0.60.1-cp310-abi3-win_arm64.whl

Download URL jsonschema_rs-0.60.1-cp310-abi3-win_arm64.whl
Size 5.8 MB
Tags CPython 3.10 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
5e7ef5b656b93873273144addb71e55f6ce24e3c819331e557b3976469482b57
BLAKE2b-256 checksum
How to use checksums
cfcc4670f8b43f891f27de8d45977f172ebb3e6140e07d73997d8c9bcfa64952
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jsonschema_rs-0.60.1-cp310-abi3-win_amd64.whl

Download URL jsonschema_rs-0.60.1-cp310-abi3-win_amd64.whl
Size 6.2 MB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
96f016026be8959baac911b4e8c23d5372414d962630c167b76631e497df218c
BLAKE2b-256 checksum
How to use checksums
24f0948762fae37ae4c1e269f4dc4c423b19393532f4b590c551aca5df06fdb7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jsonschema_rs-0.60.1-cp310-abi3-win32.whl

Download URL jsonschema_rs-0.60.1-cp310-abi3-win32.whl
Size 5.4 MB
Tags CPython 3.10 Windows x86-32 abi3
SHA-256 checksum
How to use checksums
38e92895875126eb3672ba00c10a89ff903b9a4e1d79903901565460bb0fe033
BLAKE2b-256 checksum
How to use checksums
b112d85cc2f5e6f09b20676f4af130d0d0f47bb1c773bdeb8eeaf0b09a360e43
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jsonschema_rs-0.60.1-cp310-abi3-musllinux_1_2_x86_64.whl

Download URL jsonschema_rs-0.60.1-cp310-abi3-musllinux_1_2_x86_64.whl
Size 6.4 MB
Tags CPython 3.10 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
cf4fdf820c36f0ca785e29c36a6676c072fe410700f4b4bb6eef7e0753ac1b48
BLAKE2b-256 checksum
How to use checksums
925c290373a3da62db382f65019b4d14c62f9ac543efc07a608928dbf9654c0b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jsonschema_rs-0.60.1-cp310-abi3-musllinux_1_2_aarch64.whl

Download URL jsonschema_rs-0.60.1-cp310-abi3-musllinux_1_2_aarch64.whl
Size 5.8 MB
Tags CPython 3.10 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
924c3257bc7b65aecad4d2a9b95f9996281024853b94977024ac988ec7bca030
BLAKE2b-256 checksum
How to use checksums
7c134a5cbe443f250efe7c8f4a6ef545f594d8c1dbedca3caea4f5cb7ab92800
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jsonschema_rs-0.60.1-cp310-abi3-manylinux_2_28_aarch64.whl

Download URL jsonschema_rs-0.60.1-cp310-abi3-manylinux_2_28_aarch64.whl
Size 5.7 MB
Tags CPython 3.10 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
9c9b6b2a48d0ea300ff197217b13360645a4fa4ccaa06c0972d2d89b3b1e58fe
BLAKE2b-256 checksum
How to use checksums
0db4d15f61ee97e511d740ecba6daffebcde340810b53772cffa45a952c45432
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jsonschema_rs-0.60.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL jsonschema_rs-0.60.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 6.2 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
d43457fa7daf871f7fd51955c3da7227ed7568717c6de309952eba5c412e1488
BLAKE2b-256 checksum
How to use checksums
c7da62bdd91a968a2eadc0be47ee14bb1907316d1eb8d391b7c605a6090de612
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jsonschema_rs-0.60.1-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl

Download URL jsonschema_rs-0.60.1-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Size 6.0 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-32 abi3
SHA-256 checksum
How to use checksums
c1322ed93ff8c7c57d62835bf57e5c26ac3b1ae6d846602a303f14560fde8ebe
BLAKE2b-256 checksum
How to use checksums
82b2ab355f69ec03ae34a93805fafb849053e55808b95037ad18099118a8ac7d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jsonschema_rs-0.60.1-cp310-abi3-macosx_11_0_arm64.whl

Download URL jsonschema_rs-0.60.1-cp310-abi3-macosx_11_0_arm64.whl
Size 5.5 MB
Tags CPython 3.10 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
41f53a23dcb4dcd6b0f80f5d359b9c56d49f49dbb7e1c604bc11b878a62ea1e8
BLAKE2b-256 checksum
How to use checksums
28985c0ec9397178648adf3eb69dc632d09610e22684ca96ded547bc2637d5e2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jsonschema_rs-0.60.1-cp310-abi3-macosx_10_12_x86_64.whl

Download URL jsonschema_rs-0.60.1-cp310-abi3-macosx_10_12_x86_64.whl
Size 6.0 MB
Tags CPython 3.10 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
f18e4079d057877770f2aac4a399d4c5917cddab187a1354f4294b80b0d7dbc3
BLAKE2b-256 checksum
How to use checksums
b1ce5ef344d747ba5f9ae3ff33c183bdd6d42a72f4ff4620a7cc2da9cee2e9a7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Security for jsonschema-rs 0.60.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.60.1 This release

31 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page