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:

  • 138-2,841x faster than jsonschema for complex schemas and large instances
  • 8-470x 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.53.0.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.53.0-pp311-pypy311_pp73-win_amd64.whl (5.4 MB view details)

Uploaded PyPyWindows x86-64

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

Uploaded PyPymanylinux: glibc 2.28+ ARM64

jsonschema_rs-0.53.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.5 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

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

Uploaded PyPymacOS 10.12+ x86-64

jsonschema_rs-0.53.0-cp315-cp315t-win_amd64.whl (5.4 MB view details)

Uploaded CPython 3.15tWindows x86-64

jsonschema_rs-0.53.0-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.53.0-cp315-cp315t-musllinux_1_2_aarch64.whl (5.2 MB view details)

Uploaded CPython 3.15tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.15tmanylinux: glibc 2.28+ ARM64

jsonschema_rs-0.53.0-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.5 MB view details)

Uploaded CPython 3.15tmanylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.15tmacOS 11.0+ ARM64

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

Uploaded CPython 3.15tmacOS 10.12+ x86-64

jsonschema_rs-0.53.0-cp314-cp314t-win_amd64.whl (5.4 MB view details)

Uploaded CPython 3.14tWindows x86-64

jsonschema_rs-0.53.0-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.53.0-cp314-cp314t-musllinux_1_2_aarch64.whl (5.2 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14tmanylinux: glibc 2.28+ ARM64

jsonschema_rs-0.53.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.5 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.14tmacOS 11.0+ ARM64

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

Uploaded CPython 3.14tmacOS 10.12+ x86-64

jsonschema_rs-0.53.0-cp310-abi3-win_amd64.whl (5.4 MB view details)

Uploaded CPython 3.10+Windows x86-64

jsonschema_rs-0.53.0-cp310-abi3-win32.whl (4.7 MB view details)

Uploaded CPython 3.10+Windows x86

jsonschema_rs-0.53.0-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.53.0-cp310-abi3-musllinux_1_2_aarch64.whl (5.2 MB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.10+manylinux: glibc 2.28+ ARM64

jsonschema_rs-0.53.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.5 MB view details)

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

jsonschema_rs-0.53.0-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.53.0-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.53.0-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (10.2 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.53.0.tar.gz.

File metadata

  • Download URL: jsonschema_rs-0.53.0.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.53.0.tar.gz
Algorithm Hash digest
SHA256 20589c48f4edba57817b3209153261a2a547eadaf53ac2b57f9e7725d1af49cf
MD5 31d6bc35c3f1c03d81647f6f97375bef
BLAKE2b-256 b40ba4afcc948154a9817089caad3ce05df38fc4dec53e8eab22226bba79206e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.53.0-pp311-pypy311_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 e4dda565b797be925f6ac673087d5d9f2f1c1feefb4fe24749b08a2579961852
MD5 67e03bbdb25ff11b8aa4662e082444d1
BLAKE2b-256 e14d276f0ff4ae3b0061be190695ac79d406287afda9f83bcc1da69b0cebc195

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.53.0-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b81d1cba05b1d036be8629d6971034b78319648b77dc8996210779d9f987e4bd
MD5 22eb93131622484b0fd32f8e4e5a88e0
BLAKE2b-256 22bc621bfcc7d0f79f653948f290d3f3ec082d60e80b918b46c76cbf342c51a8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.53.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 26dd859cd6d20677b584f20edfb73e1fc82a4f8cf1252a867970887031791386
MD5 f7e8af614cf20f818b584c78f1f1250b
BLAKE2b-256 39fbf2b0fcb3f5f341f444bb41a3bd977eeb587a842c1c876c4e279d4458b3b8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.53.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 55eb953504903a4cd7b72a3dfc34238da248cf3a9aefe25cdf1c3a716baedaa6
MD5 10978466620944b497667c241694aed0
BLAKE2b-256 53aff8990d0bd9cce09f9014f2d6cbdd5a87f28ebec5b2f6702073092ab9e7f9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.53.0-cp315-cp315t-win_amd64.whl
Algorithm Hash digest
SHA256 cf0036850b14d245eec7896b4b3770ec7189b43accb4e74412547325483e8006
MD5 5c122b86f5faa53e2377b01d9199922a
BLAKE2b-256 106bf173c9d27f53eec7dfca550688bf958f37020c956796dbd49382f27c078c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.53.0-cp315-cp315t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2133d62b9daca92415ebee591a1c42b97fd5214cb77c3e93acdfe696eb327d4e
MD5 019a8b4d939d606b6db8c9ff9912178b
BLAKE2b-256 c53097401d74b1b700456535bf9dccde766dedebe1a5f059cda6e098ee3e18bb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.53.0-cp315-cp315t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 993df208eaa4bdc1999090c6b996403116af60b12ca7fa8479b5b5401493bcda
MD5 246991e89c5331cdfacc5c483bb971b5
BLAKE2b-256 b9ca03c81cb9d1b383a11d12e774222b2b70a219977475c048914c47108f2b97

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.53.0-cp315-cp315t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9ff4d430cf1a8f77e2baefe0a9edbd635e39fe1a7ecc422cd9e6baac694633f8
MD5 b776d28938ffd96de9ca9dd7cea44229
BLAKE2b-256 5f437ca01e2a521b0fcd07122a71a25053d8a0a0df986b0a0e1a7897253451c0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.53.0-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 dc4e7d9050f5f1dd60462b32609ff22951ecc702ef5441b93dee41bfbdd767d9
MD5 9e086e28fb8c905acf00e70fe2e31c10
BLAKE2b-256 7c4692a417048201c104320543290f6038c86a99a9262aff414afd0f34cc772a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.53.0-cp315-cp315t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6f29792db9b69f07090c6d6d4182c896bd068eb053bc3ec7bda2690f6e5b268b
MD5 b9f4f63fe49975f784d1f6cea05b629c
BLAKE2b-256 0e2af579546ebf36ada9a620ca0406882a84fa94d5eeee6e3e272f5840a60f49

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.53.0-cp315-cp315t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 2bf89b56a0093547f26141287eaa956061537621b070ac02112b69459b288297
MD5 57bb84054cb230089e4779ae23215e8f
BLAKE2b-256 1cdb151674077ee4d94b824ef8c342b289963ded02151c9d54f7f4df192de00d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.53.0-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 bf3c3eabc71306ab5d0f297d4ccb660058e34dcccd0e36514b9a75583f152544
MD5 448235c02b5e5d210b34ff898b2635cb
BLAKE2b-256 b1f154a10a6b9c4741e9f8c14cc531e29e7523fa617aa9ca277ef0be076488c6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.53.0-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d51896a299dbcfd11b2cd90298203ac5d5f7f6c8a33ea64e4fa3ff70256c7a07
MD5 b372cd284956e68572facf701da60b1c
BLAKE2b-256 f003a0972ab966d37f7d427d480503f096f278b370eb9a5676db550e0b246259

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.53.0-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 795ed1f954849392e1f0d9492f4472847cf4fddd3feba107186dc7657a762542
MD5 3b988136a0d5411751a92281a8b31747
BLAKE2b-256 93c0ae81c0e87e10feaa07c4be3a363dc5c8b23305ecde18eabe468af4125679

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.53.0-cp314-cp314t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5cf599a0af3f861bf0b0bac402adb21a96f515b23adbfc75cd8b8d03c68c2da6
MD5 db99ad4e46ed393658bba44bfee3f1c3
BLAKE2b-256 e2f5cf3b3331be3ac01497a5f8e3b1673a1d5e2dae501624f48559a9cd3bf2e1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.53.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d595dd42a28915be63e32a37370c92947956b19186a88f179f447c583e3e95b2
MD5 3032c566c6dc5834ca1ae7f623d256e7
BLAKE2b-256 a30f091e8ebb353ef4b3d1bc00b13287fcde2864bdcbd50d0ed8a52f68afba80

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.53.0-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bf789995df1d814a1319e01d09ce2db740e1ff664386ea9047da4f8981811e50
MD5 3c7e6da2cb2fab7df58a42d9e214bad8
BLAKE2b-256 3da20e61db4589b08300f4161a5e15db9cec5e7fb539ac5fb0df4bf2f0d18572

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.53.0-cp314-cp314t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 95e19b72ffa7219a3edd5a196f80f7a43b4ff168e126287113e8c5cca05b766c
MD5 13f3615d7a265a35ba0c06be79b61931
BLAKE2b-256 77270072113f7a7fe83ad4485f1d2feff9baff1db1ce226232dcd8f80afa7b5d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.53.0-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 5f52e5729ea30ffd2eee2ce0ef2e11e5d063596356e922078e904579a6449c11
MD5 d5dd5b494d3c17f48d9b494f79370df9
BLAKE2b-256 38c3771d919ced5a7ec417b077dbc3a5b22e0e0a3e5fbeb78ff1fd5344f2b5a6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jsonschema_rs-0.53.0-cp310-abi3-win32.whl
  • Upload date:
  • Size: 4.7 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.53.0-cp310-abi3-win32.whl
Algorithm Hash digest
SHA256 eef23d47042ec46dba4d556493516eefc88861140e6620927e2c29cd286ba2ed
MD5 5893c6f62534fa6f9666a33cffe24fa8
BLAKE2b-256 3fb4b2a803a8946c75167c981be536360ec4eb258f2e3620c1a079c8952dbbda

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.53.0-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5a358ad93083329619d2a9bf7bd634d55b054e226ba74e49d1f2499f9dcd3bfe
MD5 4eef51dd4e287391333e24cd1debf60c
BLAKE2b-256 412fe3537d8215c9c6adf7490d391845ae04af3fb32ee4959027a6f407920a4b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.53.0-cp310-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 3c9cbd19546616b2ad5d22d798c7f51c9e64963666b29eb9fe28ba311f4aca98
MD5 4dde9d66f343ef874dd292c468fda005
BLAKE2b-256 70d728232627f2cc138d462e044ac5edff00c7af8063c64bd2d2104320bc9b17

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.53.0-cp310-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3c704e24f3f800ce134ed01defb8e1f160f621f0266fc1f1347348afca5675a4
MD5 72aa176b7af6a27d9ac63ff7a9eb0ff8
BLAKE2b-256 6d4c7c9e10e7ac15e761e969222abfe130dc5b15a91b2e0063faa9a7ce0b8455

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.53.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 11cf10421ebfb61bba4e40770dd12989a1f37c92b5352012dac1d40999178bad
MD5 89b6fec7b0b64e8ec6d77097ba84ff65
BLAKE2b-256 66d8195c39b5d67bed1d5115ba8d8da666449ce47fcca3e239c2c76358fef3c2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.53.0-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 05924a32f9fad5ff5b394d1a1b29ba899a43416bda1ecab3af1af8b2d45457c6
MD5 df31d8c213ee35bcfb6301aa2739bf9e
BLAKE2b-256 8de45d5a5cadc7618ee5f28d2a48c2d952781ae22144456bcdf0bce21e24afd4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.53.0-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 bbf07a4afa6259c00ca42362642bc6fa7befc5d975fe20a04cebe1980631b482
MD5 1b0cf8753d0c2d59328d72b8559e4235
BLAKE2b-256 cc28ab80c226e5e38af3c25cbd90d712e18856f08b3a846d1a7da10b436437cb

See more details on using hashes here.

File details

Details for the file jsonschema_rs-0.53.0-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.53.0-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 40d51f2dec93cbed12c0604608dc8188169f9036c6e103f2c36e1c9c8844dc80
MD5 39a4d8040e96c51c3260b85ce6783b06
BLAKE2b-256 a15093b458963e36b8a961451c598c741c0cb0f40448811582c2af80783a9826

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.53.0 This release

28 files

0.52.1

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