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

Uploaded PyPyWindows x86-64

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

Uploaded PyPymanylinux: glibc 2.28+ ARM64

jsonschema_rs-0.52.0-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.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl (5.3 MB view details)

Uploaded PyPymacOS 10.12+ x86-64

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

Uploaded CPython 3.15tWindows x86-64

jsonschema_rs-0.52.0-cp315-cp315t-musllinux_1_2_x86_64.whl (5.6 MB view details)

Uploaded CPython 3.15tmusllinux: musl 1.2+ x86-64

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

Uploaded CPython 3.15tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.15tmanylinux: glibc 2.28+ ARM64

jsonschema_rs-0.52.0-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.0-cp315-cp315t-macosx_11_0_arm64.whl (4.9 MB view details)

Uploaded CPython 3.15tmacOS 11.0+ ARM64

jsonschema_rs-0.52.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.52.0-cp314-cp314t-win_amd64.whl (5.3 MB view details)

Uploaded CPython 3.14tWindows x86-64

jsonschema_rs-0.52.0-cp314-cp314t-musllinux_1_2_x86_64.whl (5.6 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

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

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14tmanylinux: glibc 2.28+ ARM64

jsonschema_rs-0.52.0-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.0-cp314-cp314t-macosx_11_0_arm64.whl (4.9 MB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

jsonschema_rs-0.52.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.52.0-cp310-abi3-win_amd64.whl (5.3 MB view details)

Uploaded CPython 3.10+Windows x86-64

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

Uploaded CPython 3.10+Windows x86

jsonschema_rs-0.52.0-cp310-abi3-musllinux_1_2_x86_64.whl (5.6 MB view details)

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

jsonschema_rs-0.52.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.52.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.52.0-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.0-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (5.1 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ i686

jsonschema_rs-0.52.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.52.0-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.0.tar.gz.

File metadata

  • Download URL: jsonschema_rs-0.52.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.52.0.tar.gz
Algorithm Hash digest
SHA256 f6e4caf6377b92d14667379c8c4e5a5337965386d76941be074db0a413675f5f
MD5 4b0f0833c92b460f942860d4ff86b875
BLAKE2b-256 6f88c976be555d2524d0cb5cc802a9fb1af07646218858e0cc53e6466a7a31f5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.0-pp311-pypy311_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 31d05abd6fe4d47703f6ca85c4dd37149de97dd5f18ff4c9ba12848a529e923a
MD5 99b06544981b4537304c5a0c3a640fa3
BLAKE2b-256 2fe5c32e445f11d148b3d4bf3b4d2d10d6ecd55314ec70552eea6dc65c0f8018

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.0-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 523b1c51fe6ce703e60036430ee578a437cfef90bff9d1d0dbd78f5474d19c1e
MD5 9b9aa65a52e4233ff07a2fe72bf55a10
BLAKE2b-256 1cf9d28af8bd4361132fdc6ae6bbd985b3898e26f6a3633f21621a700d3ca20d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4eb14b695cd4b5972cc4437f343d88d3d80a961254d89eb9371e4154b7dade88
MD5 e2c30bd3d57c200844aa8efa092e68d6
BLAKE2b-256 5a32e5281cd26eb7c68dad0e79da46e6d756f63a35026a4f43b544d93ce52f02

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 1dd1220cd30f08932b8c9bfd52b3cd4a4aaae2e4090ac3270cd01fa6750a5516
MD5 1e24796a6100e6cb6446636fbe80b6c3
BLAKE2b-256 9ac7a911c7991149d9db776388d16d42727100a185542c44b15d774174aad8d7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.0-cp315-cp315t-win_amd64.whl
Algorithm Hash digest
SHA256 3479ffde9a8125646f05b4967a322fe3ed5ea80a89cccceac3607b747cf05aa3
MD5 526eced724d8de49b5c2f9413e7d4eee
BLAKE2b-256 691823d935be7c996ca8a39fdcffd2388fefb80d47b10e41fce115b3fb4fe40f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.0-cp315-cp315t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2c17092cf94d4788dfd5fffc9f4aa1dc63c6d46bf1999ab415d3768139ac6e8f
MD5 61a59f34514d39b2a01bc7f6defa4029
BLAKE2b-256 b4b820409b9dbed31e433dbfe54493b3e5120f92d928f064eef61c007ce50046

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.0-cp315-cp315t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 b379cfe6edf6f928c6aa89ca7f5e404789756a61142f5c3d44dc6f0fa9d0b066
MD5 ad63040021e135ca76848cc10d27c9a1
BLAKE2b-256 462d8baf621048d757ae5dbcf6e467f8ce7106f9e2e7e67b176f28663311cf2a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.0-cp315-cp315t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 713f4c5804ba286fed0b4440f8d6cc172e8729f2b230c276c4ea4d33c86ede50
MD5 ac50fa58efd317fbdc9e371e9bd6a842
BLAKE2b-256 8c40315cca53fbb12f39d8526de38ae5c5c19711f11bfb55930bc343cfceeb8b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.0-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 eead0354ec5d0565af2856e327cb556c3dc17d3b1802f7d46ef6716e105501b7
MD5 618a7dc4ae48e78d1178adf88936bf17
BLAKE2b-256 598c293ddd0ea377f75d6132cfe44fabcffe0c005f7c5c06bb1d8fb1b8f61fec

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.0-cp315-cp315t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b11e0fee721337a6f3b5dcfc8396b3f270a132e1d565161a738ff2a53dc134ed
MD5 db8269dfd5be08c7cef035779e72d209
BLAKE2b-256 8eeeec0916ad01bb4e444d8d4912b160122804702051419eae6707c34c8456ad

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.0-cp315-cp315t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d90b8d50bed50084124b1c535701787561e42293e7b4c8aa82265c4232ccd23a
MD5 67dad35365781ec76888d15697d86276
BLAKE2b-256 79674ca34567f937dbf0eba8fb39ce0f48bd00252252c2758e38d089cbdd5a7e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.0-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 c7c98e7a07130ce9a260b413c565c8a9db810f4ec22eff9ea800bbfde646c7c0
MD5 fe275191386396984e6c018d1f7ddd47
BLAKE2b-256 2152a8abea3b3a79e93e72fd5d9b69d389dc5b4b72b9195b9630beaf1a1abdbf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.0-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0e2fce7c7665331473be07be842c371d99eb72ec2e91c2d24d252b6ade0270e3
MD5 87099cc4be99201dffb69fde31fc101a
BLAKE2b-256 c82ff4baf513ef179233745173f2fc1cef0d50c19f390143e0486d197475924f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.0-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 920d53e5c2c3950818b0840aad77e411b0601ec8b9875df5e46e22742be4a4ee
MD5 3a8b3be498667e72a6aa3af12ee2c035
BLAKE2b-256 7b4ba439acf39a2621cb7770e59ff9e2ecea3cb191a066d3140d172e94e90742

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.0-cp314-cp314t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 86851c6cbbc71723b2836673d3133167b67a3a69c6f45a9b84b02fb0776a0df4
MD5 d16fa10689e4edc5a7d0d0f4de6c8c3d
BLAKE2b-256 e5b65f44af53189edbd9470fd01a2fb10d3b6630d6ec486c7a659ee2bcb79254

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b4c08c89709540d98c4c45d656c31070f87190d4947933ea17ac8af26741bb23
MD5 41361ca4536a1e074e0a0000b4b3f05a
BLAKE2b-256 2ec3552f0410e18b10314cc43b21604c40e7f65094b81998d3773d2f78c0898b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.0-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8a53495ff1662e9a08c5351934950bb5a207908fb97f091a9cd691dd74ff797c
MD5 d8075d66124210738757abea2fceec0c
BLAKE2b-256 79054b6acf7d918ae8ff23842c66c99f897cf6e907216ae43df212360f1bf4a7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.0-cp314-cp314t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5696266836050260d478d413257ebfe887d36b6d8ab7a304753fb1f26edc283f
MD5 be3d19a8118cff7346fe8c42a6b6804c
BLAKE2b-256 a69df8110e43868defc62bb9861ebb95d8a7cf524bc3caa795749208033483c2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.0-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 e31e00c92ac47f5acae994b4e0a9c52706b8170e535b7040650be4189aaca1f1
MD5 537cce084cf889a5e12d830844c6a244
BLAKE2b-256 bdda0f3e91d35cced50de456006c064ff8ee07ead0b74db08725a088675edd2c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jsonschema_rs-0.52.0-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.0-cp310-abi3-win32.whl
Algorithm Hash digest
SHA256 0feae86564940bc0650546a64ef31ac6fab42adfff3858e9ce3b71fda64a26e2
MD5 74c4d889e0659a5f5e2f18dc048f51d9
BLAKE2b-256 66ad6d4eda51e1af1e0e4d9812222b28925e2def888ec85363784e8eca08fd11

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.0-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 92306cefb656ffd431d1a195d47d4a67420e39daf78d349f1a462592e5141daa
MD5 20e77bfbd4ddbe2fad1ff94936707531
BLAKE2b-256 62d306fbf4400ddae2d7038d1a636073737f86715aaaf5f803b601149f0675ba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.0-cp310-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 831d7aa583f529e0a0b4f49bd5d0ad743908de42421b52e1158585eaefae68ce
MD5 b48bf7d0560955dfb567dd8ae4a37dd6
BLAKE2b-256 43386e8154759a06810d2ecbd35e5b6c38ca623ddbc3a53378ec0c2ec1c8bd96

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.0-cp310-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 de6086d75fcf722602308b97f12755289a3cc114aeac818cdad273ddbf7a700d
MD5 b55bb308deb3f223f814b66c95bf896b
BLAKE2b-256 b43074bf63a40e608ea133c031ef1d4320ad51e288a1cafa23a625beea65fb61

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 beeb758080d732936210f8c75c1730105c0e2dbcd8e6fc8f368fb6eca7ed1f83
MD5 762c0beb62281bd42f8f2be1fd031a55
BLAKE2b-256 7cd6b5b18852800537f53d0affe094cf437190a282fcf1b8d577cc59bd8915b5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.0-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 5b1bfa42fe136ed63340627c6f70cd31489370bb0311f9c7c85ab6a9ebba8b56
MD5 5889f4ef3d2df014a39a6831e28ff5c0
BLAKE2b-256 5f6dda8b90f1698bc49915d6a59cc27a72126fcb89cadc6360ab5733589f6c4b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jsonschema_rs-0.52.0-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b0702b77346ce62f905597137f92df81245db58489fc9811b7e066bece3cca70
MD5 3778cdc8a003c439d852a7b4584d393d
BLAKE2b-256 06dcb398ee68dc02c5bbd3dcbe00dbfdc04cbf8d204362dfee687a3aaf1ba2ff

See more details on using hashes here.

File details

Details for the file jsonschema_rs-0.52.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.52.0-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 30e4a258abb4fa7bcc89900faae5cf562f48facf3d6687cbbef8846d60dd8a5f
MD5 be956b489bb333eed2f0ddc891082ce2
BLAKE2b-256 e46bf7b99f7b5588648cfccaea4d6dfa9f6d41516f5d511800b4be971e51c4f1

See more details on using hashes here.

Release history Release notifications | RSS feed

0.53.0

28 files

0.52.1

28 files

This release

0.52.0 This release

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