Skip to main content

jsonschema-rs

Build Version Python versions License Supported Dialects

A high-performance JSON Schema validator for Python.

import jsonschema_rs

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

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

Failed validating "maxLength" in schema

On instance:
    "incorrect"'''

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

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

# Boolean result
assert validator.is_valid(instance)

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

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

Migrating from jsonschema? See the jsonschema migration guide.

Highlights

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

Supported drafts

The following drafts are supported:

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

You can check the current status on the Bowtie Report.

Playground

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

Installation

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

pip install jsonschema-rs

Usage

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

import jsonschema_rs

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

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

import jsonschema_rs

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

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

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

To implement a custom format validator:

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

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


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

Custom Keywords

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

import jsonschema_rs

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

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


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

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

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

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

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

Example usage of these options:

import jsonschema_rs

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

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

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

Failed validating "format" in schema

On instance:
    "unknown"'''

Structured Output with evaluate

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

import jsonschema_rs

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

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

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

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

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

Arbitrary-Precision Numbers

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

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

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

from decimal import Decimal
from jsonschema_rs import ValidationError, validator_for

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

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

Schema Bundling and Dereferencing

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

import jsonschema_rs

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

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

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

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 without changing the values it accepts. Schemas that accept the same values reduce to equal CanonicalSchema objects, and contradictions reduce 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
assert canonical == jsonschema_rs.canonicalize({"type": "integer", "maximum": 100, "minimum": 10})

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

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

A canonical schema is the set of values it accepts, so canonical schemas combine as sets. Every emitted schema carries $schema, left out of the comments below:

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, across the types it never admitted
positive.negate().to_json_schema()
# {"anyOf": [{"type": ["null", "boolean", "string", "array", "object"]},
#            {"type": "integer", "maximum": -1},
#            {"type": "number", "not": {"multipleOf": 1}}]}

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

Comparing two versions of a schema

The difference answers what editing a schema did to the values it takes: it accepts exactly what the old schema took and the new one turns away, and is unsatisfiable exactly when nothing was lost.

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

Compare a request schema new-against-old and a response schema old-against-new: narrowing a request turns away payloads a caller used to send, widening a response returns values a caller never agreed to read.

Satisfiability.NO on the difference proves nothing was lost. UNKNOWN proves nothing either way.

UNKNOWN is undecided, not negative, so the two questions have opposite safe tests: only satisfiability() == Satisfiability.NO proves a schema admits nothing, and only covers() == Containment.YES proves containment.

Containment, Satisfiability, Distinctness and CanonicalKind live in jsonschema_rs.canonical.

Both operands must share one setup - the same draft, format policy, regular-expression engine and definitions - or IncompatibleOperands is raised. UnsupportedOperand means an operand is a Raw pass-through, and UnsupportedResult that the canonical form does not support the result.

Meta-Schema Validation

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

import jsonschema_rs

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

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

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

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

Regular Expression Configuration

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

import jsonschema_rs
from jsonschema_rs import FancyRegexOptions, RegexOptions

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

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

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

The available options:

  • FancyRegexOptions: Default engine with lookaround and backreferences support

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

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

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

Email Format Configuration

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

import jsonschema_rs
from jsonschema_rs import EmailOptions

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

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

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

Available options:

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

External References

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

import jsonschema_rs

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

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

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

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

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

Schema Registry

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

import jsonschema_rs

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

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

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

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

import jsonschema_rs

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

Error Handling

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

import jsonschema_rs

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

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

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

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

Error Kind Properties

Each error has a kind property with convenient accessors:

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

Pattern matching (Python 3.10+):

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

Error Message Masking

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

import jsonschema_rs

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

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

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

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

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

Performance

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

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

For detailed benchmarks, see our full performance comparison.

Python support

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

Pre-built wheels are available for:

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

Troubleshooting

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

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

Acknowledgements

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

Support

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

Sponsorship

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

Contributing

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

See CONTRIBUTING.md for more details.

License

Licensed under MIT License.

Download files

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

Source Distribution

jsonschema_rs-0.52.1.tar.gz (2.6 MB view details)

Uploaded Source

Built Distributions

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

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

Uploaded PyPyWindows x86-64

jsonschema_rs-0.52.1-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl (5.0 MB view details)

Uploaded PyPymanylinux: glibc 2.28+ ARM64

jsonschema_rs-0.52.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.4 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

jsonschema_rs-0.52.1-pp311-pypy311_pp73-macosx_10_12_x86_64.whl (5.3 MB view details)

Uploaded PyPymacOS 10.12+ x86-64

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

Uploaded CPython 3.15tWindows x86-64

jsonschema_rs-0.52.1-cp315-cp315t-musllinux_1_2_x86_64.whl (5.7 MB view details)

Uploaded CPython 3.15tmusllinux: musl 1.2+ x86-64

jsonschema_rs-0.52.1-cp315-cp315t-musllinux_1_2_aarch64.whl (5.2 MB view details)

Uploaded CPython 3.15tmusllinux: musl 1.2+ ARM64

jsonschema_rs-0.52.1-cp315-cp315t-manylinux_2_28_aarch64.whl (5.0 MB view details)

Uploaded CPython 3.15tmanylinux: glibc 2.28+ ARM64

jsonschema_rs-0.52.1-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.15tmanylinux: glibc 2.17+ x86-64

jsonschema_rs-0.52.1-cp315-cp315t-macosx_11_0_arm64.whl (4.9 MB view details)

Uploaded CPython 3.15tmacOS 11.0+ ARM64

jsonschema_rs-0.52.1-cp315-cp315t-macosx_10_12_x86_64.whl (5.3 MB view details)

Uploaded CPython 3.15tmacOS 10.12+ x86-64

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

Uploaded CPython 3.14tWindows x86-64

jsonschema_rs-0.52.1-cp314-cp314t-musllinux_1_2_x86_64.whl (5.7 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

jsonschema_rs-0.52.1-cp314-cp314t-musllinux_1_2_aarch64.whl (5.2 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

jsonschema_rs-0.52.1-cp314-cp314t-manylinux_2_28_aarch64.whl (5.0 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ ARM64

jsonschema_rs-0.52.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64

jsonschema_rs-0.52.1-cp314-cp314t-macosx_11_0_arm64.whl (4.9 MB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

jsonschema_rs-0.52.1-cp314-cp314t-macosx_10_12_x86_64.whl (5.3 MB view details)

Uploaded CPython 3.14tmacOS 10.12+ x86-64

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

Uploaded CPython 3.10+Windows x86-64

jsonschema_rs-0.52.1-cp310-abi3-win32.whl (4.6 MB view details)

Uploaded CPython 3.10+Windows x86

jsonschema_rs-0.52.1-cp310-abi3-musllinux_1_2_x86_64.whl (5.7 MB view details)

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

jsonschema_rs-0.52.1-cp310-abi3-musllinux_1_2_aarch64.whl (5.2 MB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ ARM64

jsonschema_rs-0.52.1-cp310-abi3-manylinux_2_28_aarch64.whl (5.0 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.28+ ARM64

jsonschema_rs-0.52.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.4 MB view details)

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

jsonschema_rs-0.52.1-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (5.2 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ i686

jsonschema_rs-0.52.1-cp310-abi3-macosx_10_12_x86_64.whl (5.3 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

jsonschema_rs-0.52.1-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (10.1 MB view details)

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

File details

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

File metadata

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

File hashes

Hashes for jsonschema_rs-0.52.1.tar.gz
Algorithm Hash digest
SHA256 25ec1da52bc1c11c012e17a01b97e24d33a15d1d76c705fd5a7c276d1bbe7677
MD5 fccda440e18f97ba8cd093f3c909171e
BLAKE2b-256 e648771a96c524eafadcd2366271c13bd6e5b79af9032821f11e22846d36da3f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.1-pp311-pypy311_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 89f603cb5db7c5d28fb3254f0649e7fcfd9e4ecce30b0cac78acf3d2efb1d9fc
MD5 b56d601da48ea0bca22e5e0375504912
BLAKE2b-256 720addf9c416a4bfb2b6f20842e8e77b72d332b0ff70f58e5dd2698310f346f9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.1-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6670f476f98ab8a5949989d85b215ce0f8776c2bda9b0f7ff62c2d4781bc87c7
MD5 9d245f7962c230822876f9596aad16c3
BLAKE2b-256 7488345e6e64f144c2e1602d0eb42c67a9fe5e3b1962f15cfe7b7970b78e3db2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3fdd5bb2f104366294dda7b7cecf3978c4bb163cb451d87fe8c0c9699ab605ba
MD5 7b82c5630d1b565e2c99ef336f1cdd37
BLAKE2b-256 2419a2a852f170063bb89cb9cf1b116b665d027998782193d0ae26eb669701e9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.1-pp311-pypy311_pp73-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 697274ecdf0ba51b8efda17d0a53b7e7bead7e1eb3c3bc0a158bc3e5b02959c8
MD5 44531ea632cce28e310663317abdedfe
BLAKE2b-256 19ec84c414f43e0eba6f2ce3af54e48ba94f0502dc8c61229577d44aec85b17c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.1-cp315-cp315t-win_amd64.whl
Algorithm Hash digest
SHA256 c5b9cfca088a8fef45f49c02d08dff63154cc129ead1dd71297d17fccf4df777
MD5 385766a706eef03c8f8962e76ef3b4b7
BLAKE2b-256 a6615ee246b16b35a122bc44b91a44aa7cdf1c2b5bb426fe3139433df1102d38

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.1-cp315-cp315t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 980031eedb20ec294f58f0983ee51af442e5a110860e428fbe1ef7c4fe4b1cc9
MD5 304720a34a5164b50d9c9d9325dd58cf
BLAKE2b-256 e5008bd6e291d170ddbc12ff7537eafaca99607ebca651ebec9951c8be798962

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.1-cp315-cp315t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 6e14a84fca6a38c7a141843552c57854bb2b0e2b43bb35f7de0223f8f5061faf
MD5 b3e84a6d2128cfe0ac77b04f9abfafa4
BLAKE2b-256 2e2bc21c2bb559174a2a9c057de5b58955d4a924a5932577e8538417dc0ad209

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.1-cp315-cp315t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4a6839c4f35038ac3aa8108265287080fd2a6d3afef3977b337d0f964e820b7b
MD5 375541d48c104336b0c3de4a02f9fa9e
BLAKE2b-256 5647f5bc417b69cd260e85772226f6e32fbd006fd7e25f43862571ca800d7f88

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.1-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ca97d13103d4ea0f04c89bf7f002008398b62ca898cdaf0ed91159e8350b95d4
MD5 84170223e9333af93df013676f607f86
BLAKE2b-256 ac82db133f9ab014be784f2c76afbee10369df2ecc800dbb99e19c64486339e2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.1-cp315-cp315t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4390738c2f21829ec4df80e3496017bd80ab2fff9e6cf8d44518cf8e5dbcbb9e
MD5 1aa359b4391abff14c10b8b95a58a910
BLAKE2b-256 9757ad36a8f91d14885f73212b0ec8146baff6aa82f9e5cfa0d36b3dfbb8023f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.1-cp315-cp315t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 e105518e7109bbec7732bad34caa41dc9497f5060f0b77a5ab3d74b0c00ae32f
MD5 408c54828f18268bd95d92e008d7e765
BLAKE2b-256 c900dee569ee080dbee68b3bc2abe2c894313feeb6da6b8221b5f3d82caea157

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.1-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 eed1ab32e1398d9a30311abf7d00c45f8ff29b7998bcfca9dfabb82f27ba8f9e
MD5 77092c7d383b1da827dc518903691b92
BLAKE2b-256 1f6642d21d3c5f6cc79d11602abf68f348d982fce4ac16aa0c05fd1bee1a07af

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.1-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3bc356e00da14e4c02d273c72c228e863daba83340d11af99f78ec906f8b5480
MD5 4aada0c2ece5fd85e559ceb9316af61b
BLAKE2b-256 c1724cce201f45fc18db2bccf373d6a3b194d9b9c8d47829812a25acc7563eb2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.1-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 ef3fd0424418f33adc1dfbb8edd76b64d46d45711c64135b07f871ec995ba4ff
MD5 9ac80ac3aa188ace3e8af79827674c89
BLAKE2b-256 86d594cc7a8c9617345ca1a251173423bbcf713632817821f202a01e439428f6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.1-cp314-cp314t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 df29b238aa0a99c9cd2c7d4e7e1db39317661806fa9253c22dbc82f6cf5905d6
MD5 3974d0299e03d57dd015934134d720bb
BLAKE2b-256 beeec0af76c0e96262dd04b332a3c47c1df22fa0efe59d61d6faef6fa3702d02

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c1e027ee48f79b508c34c91a0b2f0072736f0a5994ff8ba8b36c6ed17f461713
MD5 38292d59faab02e347e3a0f293dff077
BLAKE2b-256 1d17f4052898e6ec5abb4c51ad00807fb2664ecb627fe92caacd7bd178d0aff2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.1-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2bb49b9c0bf481d61d26f75f9b8504c916402ad0ebd4e4c80bb7b27321192dd7
MD5 ae7567d0c4a33111eb6dd088a7d973a3
BLAKE2b-256 fccb389eebcabec9aae49047c0804c006980ece69d0ca8fe0bf8627bd577ee89

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.1-cp314-cp314t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ef551bc76041b967df43897d4397ba69dd7fb934a7579b86c3d071d6aa9cdaad
MD5 e2f6ea0b9d95a92037a905d2c6294b1b
BLAKE2b-256 2db87873aad3d4eaa3f82ef32222760c5ed36fc379537045e5c413e026dbccdf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.1-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 3c9152a9aaec6a656b89fa203ccc26de54065e26cf6785378d54b6390ad403f2
MD5 a0849a3dc6750157d354c29be42d2e98
BLAKE2b-256 1d646b08a726984c8a3eb648cc516efa5bf20d218f6c26b912ffc126746c8147

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for jsonschema_rs-0.52.1-cp310-abi3-win32.whl
Algorithm Hash digest
SHA256 9131e083499ea49157e559dff813215f3ed116ed3a2996b108fed2faf1b80c0a
MD5 e704ea91f4e50e444e0e429a51b45181
BLAKE2b-256 025da588c8fc4d3f9fc06e222d35003c9c60a28bbcc492c49f273e19fa205ef8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.1-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f709d4666f7fc728829503ff653c8a578634ab1ed54e9f11097da89dd18baf75
MD5 a488c86ea1b9bbbdab2a881c8568870e
BLAKE2b-256 f88450cd77eb2d1763625e8b394d5da6ffebcb148f71f4350b7bf3872ba25996

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.1-cp310-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 4b05b745f05859ca8b2d056e22a3fae036e922a61805680cbe77cac31141be2e
MD5 e849f59e3ac2b7da86917e3c45a11f60
BLAKE2b-256 c724001bb2ee8ca4ba19a7e31daad391de8e10f554a4f8c8396f83775eb585fa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.1-cp310-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 895e7ec4c6e7ff564786f86e197c95d15017a42177523319bd45ede20e4c4417
MD5 90d66b2b211cc7668c6e957d3ad364ce
BLAKE2b-256 ac308b3d95e7be67daa93996a1444ca2238bdfcb58debf8bccf6469b5f183dc8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 150845b65c701d5db2a397c97beb98356123548b29c70095ec9a851a611cc736
MD5 90b194c8e0b0425eddd637d474c7592f
BLAKE2b-256 5f5dcd7ab77544d6a8fad152c0ec1c332de1506da1c753475357fbfbf5ed91a2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.1-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 5eb2562cca5effc43134c4f8d2ba0c2b04b97c7cfcb6ac27997f0a5b2aab662f
MD5 977691142914d7873f57be4f47be1fbf
BLAKE2b-256 820794db20d60141955d1987b73bcae8fdd3db6cfdf7ef4ad68fb9b399cd436d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.1-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d32934b6a3032e968e59bb172addb8e752d7fdbff742834390f87549889c86db
MD5 5234a008ac9a6e46da8092e517c761bd
BLAKE2b-256 713e52261a693a148d8746db1ff67591e9e9f4b56b155be3d48840f7e5cbab58

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.1-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 cf728999f2cf4fb4fba8abf8d5a110565f716f4a460f13157de59e836c03706d
MD5 a159b2c53f0ba7fcb47600fa6296b280
BLAKE2b-256 133792f23a0e53b6448faaae98ea4896f549c104cea8c07b8d213a22b2fb84dd

See more details on using hashes here.

Release history Release notifications | RSS feed

0.53.0

28 files

This release

0.52.1 This release

28 files

0.52.0

28 files

0.51.0

28 files

0.50.1

28 files

0.50.0

28 files

0.49.9

28 files

0.49.8

28 files

0.49.7

28 files

0.49.6

28 files

0.49.5

28 files

0.49.4

28 files

0.49.3

28 files

0.49.2

28 files

0.49.1

28 files

0.49.0

28 files

0.48.5

28 files

0.48.2

28 files

0.48.1

28 files

0.48.0

28 files

0.47.0

28 files

0.46.10

28 files

0.46.9

28 files

0.46.8

28 files

0.46.7

28 files

0.46.6

28 files

0.46.5

28 files

0.46.4

28 files

0.46.3

28 files

0.46.2

28 files

0.46.1

28 files

0.46.0

28 files

0.45.1

28 files

0.45.0

28 files

0.44.1

28 files

0.44.0

28 files

0.43.0

28 files

0.42.2

28 files

0.42.1

28 files

0.42.0

28 files

0.41.0

28 files

0.40.4

28 files

0.40.3

14 files

0.40.2

12 files

0.40.1

12 files

0.40.0

12 files

0.39.0

12 files

0.38.1

12 files

0.38.0

12 files

0.37.4

12 files

0.37.3

12 files

0.37.2

12 files

0.37.1

12 files

0.37.0

12 files

0.36.0

12 files

0.35.0

12 files

0.34.0

50 files

0.33.0

43 files

0.32.1

43 files

0.32.0

43 files

0.31.0

43 files

0.30.0

43 files

0.29.1

43 files

0.29.0

42 files

0.28.3

43 files

0.28.2

43 files

0.28.1

43 files

0.28.0

43 files

0.27.1

43 files

0.27.0

43 files

0.26.1

43 files

0.26.0

43 files

0.25.1

43 files

0.25.0

43 files

0.24.3

43 files

0.24.2

43 files

0.24.1

43 files

0.24.0

43 files

0.23.0

43 files

0.22.3

36 files

0.22.2

36 files

0.22.1

36 files

0.22.0

36 files

0.21.0

36 files

0.20.0

36 files

0.19.1

36 files

0.19.0

36 files

0.18.3

43 files

0.18.2

43 files

0.18.1

43 files

0.18.0

43 files

0.17.3

43 files

0.17.2

43 files

0.17.1

31 files

0.16.3

31 files

0.16.2

16 files

0.16.1

13 files

0.16.0

13 files

0.14.0

13 files

0.13.1

13 files

0.13.0

13 files

0.12.3

13 files

0.12.2

13 files

0.12.1

13 files

0.12.0

13 files

0.11.1

13 files

0.11.0

13 files

0.10.0

13 files

0.9.1

13 files

0.9.0

13 files

0.8.0

13 files

0.6.2

13 files

0.6.1

13 files

0.6.0

13 files

0.5.1

13 files

0.5.0

13 files

0.4.3

13 files

0.4.2

13 files

0.4.1

13 files

0.4.0

13 files

0.3.3

13 files

0.3.2

13 files

0.3.1

12 files

0.3.0

5 files

0.2.0

5 files

0.1.0

5 files

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