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:

  • 215-15,699x faster than jsonschema for complex schemas and large instances
  • 12-2,623x 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 3.0x 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.61.2

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.61.2
File Size Uploaded Provenance Actions
jsonschema_rs-0.61.2.tar.gz 3.0 MB Without provenance Details for jsonschema_rs-0.61.2.tar.gz

Built distributions (wheels)

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

Total release size: 188.4 MB

Release files / jsonschema_rs-0.61.2.tar.gz

Download URL jsonschema_rs-0.61.2.tar.gz
Size 3.0 MB
Tags Source
SHA-256 checksum
How to use checksums
8ea236493450c013f095d5d4d9d3b8e56fa0153fb305107f9a7134ea16bcf56b
BLAKE2b-256 checksum
How to use checksums
30d3fedab55fadf17359ed45d7c347e13839b79aa5c85c083c417b6a0e8b12a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

Download URL jsonschema_rs-0.61.2-pp311-pypy311_pp80-win_amd64.whl
Size 6.4 MB
Tags PyPy 3.11 PyPy 3.11 8.0 Windows x86-64
SHA-256 checksum
How to use checksums
68f94e664a09d800ba11adf588c39a8b5b90609703bcd87d289a203a3e9d7ef2
BLAKE2b-256 checksum
How to use checksums
1f4dd89881d31caa673eabffdf58ec17ff098c920fa0836b77fd2b9c405c0622
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

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

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

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

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

Download URL jsonschema_rs-0.61.2-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 6.4 MB
Tags Linux glibc 2.17+ x86-64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
fd78fc5d4fc9cb5b0e376e0898f07979d9cd9a3a601fb8d34dfe8dc0d99a8dd5
BLAKE2b-256 checksum
How to use checksums
16a7e57df04651792665df98043382151425896b7c3e291bd3b9cda20ad0fb0a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

Download URL jsonschema_rs-0.61.2-cp315-cp315t-win_arm64.whl
Size 6.1 MB
Tags CPython 3.15 CPython 3.15 free-threading Windows ARM64
SHA-256 checksum
How to use checksums
d6abc66472b98e4afd77716422151136b17c2d5fc4a5c41e55c993bdcff7b839
BLAKE2b-256 checksum
How to use checksums
f230b4a5367128e0df3add76f88e5507e13904f6b1e82707e9c14e5a7a04db9a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

Download URL jsonschema_rs-0.61.2-cp315-cp315t-win_amd64.whl
Size 6.5 MB
Tags CPython 3.15 CPython 3.15 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
3987f46978efd08c026d5ff7ee8c2a7a75919cf218d2378eca305fe8484ff0ab
BLAKE2b-256 checksum
How to use checksums
835444302485e51b6f011aa5fb726f984429d8da93c6e75f19f2d03fcd35ce69
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

Download URL jsonschema_rs-0.61.2-cp315-cp315t-musllinux_1_2_x86_64.whl
Size 6.7 MB
Tags CPython 3.15 CPython 3.15 free-threading Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
026b0728484cec85d6358ebc73b55fd5d1ffc607aa28c28f80b2f21615611e80
BLAKE2b-256 checksum
How to use checksums
18453a04856f4dbd08c9b1e7559653ffc3bdba63d75432e1613e907902da3941
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

Download URL jsonschema_rs-0.61.2-cp315-cp315t-musllinux_1_2_aarch64.whl
Size 6.1 MB
Tags CPython 3.15 CPython 3.15 free-threading Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
b503a569461955ad23c10c94308c128c8922a0173c25947a16473cfeadbd6451
BLAKE2b-256 checksum
How to use checksums
61da04d1099f1762cb40813105659c103c465e857bc6a1f7c4524ee4702ede71
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

Download URL jsonschema_rs-0.61.2-cp315-cp315t-manylinux_2_28_aarch64.whl
Size 5.9 MB
Tags CPython 3.15 CPython 3.15 free-threading Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
d16473f47bc2267dd2e1d31cf9b3b32b0a947cbf63ba21af14d79bdee4182e82
BLAKE2b-256 checksum
How to use checksums
01f6ffd767553f763cd32c7cf9774903f4dbff7234e56d22b449508781360f63
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

Download URL jsonschema_rs-0.61.2-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 6.4 MB
Tags CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
35894bd84ecf96316b2ce5b22b3d01d8042beca8f6931b0c72e9f699960448a4
BLAKE2b-256 checksum
How to use checksums
16144cb0de75c6083b07fece58a63c4e1d99284517166b83e38af5c0ef4b3949
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

Download URL jsonschema_rs-0.61.2-cp315-cp315t-macosx_11_0_arm64.whl
Size 5.8 MB
Tags CPython 3.15 CPython 3.15 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
a712ca1f9141c820824cbff4f6dd30ce7f5f0b98e0d11b089d1ccc303d9ba2ac
BLAKE2b-256 checksum
How to use checksums
d57618c6741a03d1d7364be8997497510de5d2747edefbacbf859e301c189383
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

Download URL jsonschema_rs-0.61.2-cp315-cp315t-macosx_10_12_x86_64.whl
Size 6.3 MB
Tags CPython 3.15 CPython 3.15 free-threading macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
4d31e6f8596c5472b4bff964704726b82ba320307c48cb6bcb1199ca123e88ac
BLAKE2b-256 checksum
How to use checksums
fd70562f989ffe6c58b67f7360f0d923c8015f9ca35988c774a2282f640eacc2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

Download URL jsonschema_rs-0.61.2-cp314-cp314t-win_arm64.whl
Size 6.1 MB
Tags CPython 3.14 CPython 3.14 free-threading Windows ARM64
SHA-256 checksum
How to use checksums
466f4d4fb785e4dda3507eb7d3e7b359e15431a2776cab5da79bdb162a6e8b12
BLAKE2b-256 checksum
How to use checksums
32ef4edab5141d9bffe582f73be113619aca04e21d5973f4b55a28e304cc260f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

Download URL jsonschema_rs-0.61.2-cp314-cp314t-win_amd64.whl
Size 6.5 MB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
d53301eb57903f7da5c9941b9de75b9bc98e0c504670534c3d38cbf95bab98b6
BLAKE2b-256 checksum
How to use checksums
d17bfd3805ef140a2958634118d51affcc0613e2a6689b8f99b8764a0d1e7b2e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

Download URL jsonschema_rs-0.61.2-cp314-cp314t-musllinux_1_2_x86_64.whl
Size 6.7 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
19366027a454e2f5ea99dd871f2be66f0e3b4b144308425cd2e8562d13b7517d
BLAKE2b-256 checksum
How to use checksums
8b1cecd1062af2f2061236d49f39dd1cdef5554f048110fac749c945fc6db459
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

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

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

Download URL jsonschema_rs-0.61.2-cp314-cp314t-manylinux_2_28_aarch64.whl
Size 5.9 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
36477e46f330203642bcf4345605e13321352d09439310d6aa551bdd84c3cf14
BLAKE2b-256 checksum
How to use checksums
968dd373e557bf4a9771df51a516adc5b63e2131161ebe2546e100ad86d8a1cf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

Download URL jsonschema_rs-0.61.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 6.4 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
5336197159477f4bd41bd471a785ffe50dae7efe5863cb85603608bd4043ec8d
BLAKE2b-256 checksum
How to use checksums
2e545e3b14c3aba8432d1dbe5ae2a12a87f71822d0f2bf50618dc330195931eb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

Download URL jsonschema_rs-0.61.2-cp314-cp314t-macosx_11_0_arm64.whl
Size 5.8 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
cba38626cdd74c3abf50c2d8efad003e5e13b3af51093c1ad8dbebdcd1818836
BLAKE2b-256 checksum
How to use checksums
602a746f2b86fe0be4013ad2212f758c8857017c01e97ba46caa1e68923f38ed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

Download URL jsonschema_rs-0.61.2-cp314-cp314t-macosx_10_12_x86_64.whl
Size 6.3 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
7c15fb54c07cd28ba9e536ba78de8cb30b08d507f7be47ee4d575b58edb83e01
BLAKE2b-256 checksum
How to use checksums
61ffd40cda99fc05f50545cb6556928a52da300a699a2f70e38dd376b2e54d8f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

Download URL jsonschema_rs-0.61.2-cp310-abi3-win_arm64.whl
Size 6.0 MB
Tags CPython 3.10 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
fdf5b2f0e4ad3bb390c7eaf7b0345ace85ac0b587aaed1d734727b29fe2f069b
BLAKE2b-256 checksum
How to use checksums
66b69e427f92adc013c4a113f93a77e5563302f2c30612e11109e49a011916bf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

Download URL jsonschema_rs-0.61.2-cp310-abi3-win_amd64.whl
Size 6.4 MB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
eef760856c1cad44b0ac4e0bf373a820f169720dc60f2e9616312b2540eb2b1f
BLAKE2b-256 checksum
How to use checksums
4afec7aa79a052897d1a99e5fee95d90bf014048e394154185e84d49372c41f5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

Download URL jsonschema_rs-0.61.2-cp310-abi3-win32.whl
Size 5.6 MB
Tags CPython 3.10 Windows x86-32 abi3
SHA-256 checksum
How to use checksums
c63a65f81a273ac96bf06278f1f96577b0082ed968cb7924d347fcaa9caaedc5
BLAKE2b-256 checksum
How to use checksums
4c8a60fd3ed89c34c66ade48b3f115b4f699d8c0d507fca008fa8d722794dd5e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

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

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

Download URL jsonschema_rs-0.61.2-cp310-abi3-musllinux_1_2_aarch64.whl
Size 6.1 MB
Tags CPython 3.10 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
0b83abd068014c0461c25c20f462e22c673f33c3b2c453ad3d8ae718bd084225
BLAKE2b-256 checksum
How to use checksums
9f69c9f33c2cba5af43b655e990f7d7063285608696b1f920a99402512afd3f2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

Download URL jsonschema_rs-0.61.2-cp310-abi3-manylinux_2_28_aarch64.whl
Size 5.9 MB
Tags CPython 3.10 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
6436d183b92f2bc7899e52d4c58175a7e66253706e3b6ab09605d5778452d99a
BLAKE2b-256 checksum
How to use checksums
016d3ba304a10a8d12f09e34b170361f99109f2f83a9df4a568b007fe117d1cf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

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

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

Download URL jsonschema_rs-0.61.2-cp310-abi3-manylinux2014_i686.manylinux_2_17_i686.whl
Size 6.2 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-32 abi3
SHA-256 checksum
How to use checksums
4459ae6fb31e77b683bdb735cd8442c4965f5f51f5c2c1de0f0b5d140008de8a
BLAKE2b-256 checksum
How to use checksums
22a3a0150dcc478ebc19cafc31324430b8f08b35d41ac6cdb8cac97560d48248
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

Download URL jsonschema_rs-0.61.2-cp310-abi3-macosx_11_0_arm64.whl
Size 5.7 MB
Tags CPython 3.10 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
449239d05754d7ccd8aea3ec7d7f745f77eea706b36e417a2f39519a55e737cc
BLAKE2b-256 checksum
How to use checksums
e2ddd7f3f466be892a0d5f7e2d0684a09e40ac271ff11f5f031e2df726135ec3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

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

Download URL jsonschema_rs-0.61.2-cp310-abi3-macosx_10_12_x86_64.whl
Size 6.2 MB
Tags CPython 3.10 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
315f2bafb89ecbf31044526b49f3d6a42565ab2f4d1bb8de7bfcd722bf73c412
BLAKE2b-256 checksum
How to use checksums
e26906ff5ea41c492f9ed76560fc7607dd3c5aaa5e082a803c043345bdfc84aa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Security for jsonschema-rs 0.61.2

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