Skip to main content

corvus-json-schema-rs

A JSON Schema evaluator for Python (draft 4, 6, 7, 2019-09 and 2020-12) backed by the corvus-json-schema Rust crate, the Rust port of the Corvus.Text.Json V5 standalone evaluator. It has the same API as the pure-Python corvus-json-schema package, so either can be imported in place of the other.

  • Conformant: passes the JSON-Schema-Test-Suite (required, optional and optional/format, every draft) except draft4/optional/zeroTerminatedFloats.json, which the C# and Rust evaluators exclude (they read 1.0 as an integer), and all of the suite's annotation tests.
  • Fast: instances are read in place through CPython's C API (dicts, lists and strings are not copied), so validating a Python object costs the evaluation alone. Over the jsonschema-benchmark corpora it takes 0.35 of the pure package's time and 0.72 of jsonschema-rs's (geometric means); see the pure package's Performance section for the figures.
  • Every platform from one wheel per platform: the extension uses the stable ABI (abi3), so one wheel serves CPython 3.10 and every later version. Wheels are built for Linux (x86_64 and aarch64, glibc and musl), macOS (universal2: Intel and Apple silicon) and Windows (x64, and arm64 from Python 3.11, CPython's oldest arm64 Windows release), and CI tests each on its own platform.

Install

pip install corvus-json-schema-rs

Usage

import corvus_json_schema_rs as cjs

validate = cjs.compile({"type": "object", "required": ["id"], "properties": {"id": {"type": "integer"}}})
validate({"id": 3})                    # True: a value as json.loads produces it, read in place
validate.is_valid_json('{"id": "3"}')  # False: JSON text, parsed in Rust

compile takes the same options as the pure package (default_dialect, assert_format, formats, resolve_document, base_uri, entry_point, max_depth and the rest, as keywords or a CompileOptions), and evaluate, JsonSchemaResultsCollector, ResultsLevel and collect_annotations work as they do there. Custom formats and document resolvers are Python callables, called from Rust.

What differs from the pure package:

  • There is no generated source: no Validator.source and no generate_module.
  • is_valid_json(text) validates JSON text (str or bytes) without creating Python objects for it.
  • Subclasses of dict, list, str, int and float (an OrderedDict, a string enum) are read as their bases, and tuples as arrays.
  • Integers beyond 64 bits are compared as the nearest double, as by a JSON parser without arbitrary precision.
  • A string with a lone surrogate (which json.loads can produce) is read with U+FFFD in its place.

How it works

The crate compiles the schema once into its node graph and fail-fast plans (see src-rs/corvus-json-schema). The evaluator is generic over an Instance trait (a value shown as one of the six JSON kinds, with arrays and objects read in place). This package implements it over Python objects through the stable C API: a dict is walked with PyDict_Next and searched by scanning its keys (or, when large, by lookup), a string is read as the UTF-8 that CPython keeps with it (no copy for ASCII strings), and a list is read by index. Anything the reader cannot take exactly (a tuple, a key that is not a string, a lone surrogate, a number beyond a double, very deep nesting) makes the call convert the instance to a serde_json::Value and evaluate that instead, so results never depend on which path ran.

Building

pip install maturin
maturin develop --release   # into the active virtual environment
maturin build --release     # a wheel for this platform

The Rust toolchain is pinned in ../rust-toolchain.toml. The tests are tests/test_binding.py and, through --impl corvus_json_schema_rs, the pure package's suite and results tests.

Metadata

Release files for corvus-json-schema-rs 0.1.2

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

Source distribution (sdist)

Source distribution for corvus-json-schema-rs 0.1.2
File Size Uploaded
corvus_json_schema_rs-0.1.2.tar.gz 141.7 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for corvus-json-schema-rs 0.1.2
File
corvus_json_schema_rs-0.1.2-cp310-abi3-win_arm64.whl CPython 3.10 abi3 Windows ARM64 Details
corvus_json_schema_rs-0.1.2-cp310-abi3-win_amd64.whl CPython 3.10 abi3 Windows x86-64 Details
corvus_json_schema_rs-0.1.2-cp310-abi3-musllinux_1_2_x86_64.whl CPython 3.10 abi3 Linux musl 1.2+ x86-64 Details
corvus_json_schema_rs-0.1.2-cp310-abi3-musllinux_1_2_aarch64.whl CPython 3.10 abi3 Linux musl 1.2+ ARM64 Details
corvus_json_schema_rs-0.1.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 abi3 Linux glibc 2.17+ x86-64 Details
corvus_json_schema_rs-0.1.2-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 abi3 Linux glibc 2.17+ ARM64 Details
corvus_json_schema_rs-0.1.2-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl CPython 3.10 abi3 macOS 11.0+ ARM64, macOS 10.12+ universal2 (ARM64, x86-64), macOS 10.12+ x86-64 Details

Total release size: 12.7 MB

Release files / corvus_json_schema_rs-0.1.2.tar.gz

Download URL corvus_json_schema_rs-0.1.2.tar.gz
Size 141.7 kB
Tags Source
SHA-256 checksum
How to use checksums
2fffb3568ffafb07de9c621ddda77116b7bfe72c49224c94e731b7633b9ee915
BLAKE2b-256 checksum
How to use checksums
7d12f11ce20995353552715c0439dad85a3a08f1b00684b5a80b5ce9cfbfa4be
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release files / corvus_json_schema_rs-0.1.2-cp310-abi3-win_arm64.whl

Download URL corvus_json_schema_rs-0.1.2-cp310-abi3-win_arm64.whl
Size 1.4 MB
Tags CPython 3.10 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
3b263c236aef4d122049318d886512daa166300a1d2cfb252d7bea661a507da9
BLAKE2b-256 checksum
How to use checksums
2de4747866207b0421c7fee56de4c20cab2a7ea38e389da7c38db7aefa9487ab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release files / corvus_json_schema_rs-0.1.2-cp310-abi3-win_amd64.whl

Download URL corvus_json_schema_rs-0.1.2-cp310-abi3-win_amd64.whl
Size 1.5 MB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
bb90f53ffc4d18fc117a253e0196fadb922413345910cefc1bd9dba3a810de92
BLAKE2b-256 checksum
How to use checksums
d1e64ac3887071cd16c191704266cfe2e1c10ff2cdcafbdae998c064e1588363
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release files / corvus_json_schema_rs-0.1.2-cp310-abi3-musllinux_1_2_x86_64.whl

Download URL corvus_json_schema_rs-0.1.2-cp310-abi3-musllinux_1_2_x86_64.whl
Size 1.9 MB
Tags CPython 3.10 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
233d1cb86a386d165ea1d2fc4c66b13d183d4f30b48f86bd0019831c614aa780
BLAKE2b-256 checksum
How to use checksums
3e25133af071884767092f1c4459ee6c2edc04476c986ae6b9b51442839dc815
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release files / corvus_json_schema_rs-0.1.2-cp310-abi3-musllinux_1_2_aarch64.whl

Download URL corvus_json_schema_rs-0.1.2-cp310-abi3-musllinux_1_2_aarch64.whl
Size 1.7 MB
Tags CPython 3.10 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
14c1ae93efe8abcbf663ffa992c6b1619d10ed8cc42cda8278a527d8f0e0ab15
BLAKE2b-256 checksum
How to use checksums
4982259687d4779c1c20e6e5fede9dd623bb1e06aab2e47e9fcdeaae7714a820
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release files / corvus_json_schema_rs-0.1.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL corvus_json_schema_rs-0.1.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.6 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
bb6ffa438e8bc1c42f8f645994d59597fea7dacdb78969938c94041e383c6509
BLAKE2b-256 checksum
How to use checksums
b303ac224c5b91647d776f891fa0dab7351112155f02ee6e2e0c16dbcb12b11d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release files / corvus_json_schema_rs-0.1.2-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL corvus_json_schema_rs-0.1.2-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.6 MB
Tags CPython 3.10 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
5a290005f025716046d4502e7d925ae3db9fdae466e3bed9346cf3d6ad305a2d
BLAKE2b-256 checksum
How to use checksums
80090273a80cd33f014a0d0b36934d86c266332c036595f2d7c0479f7676b323
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release files / corvus_json_schema_rs-0.1.2-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl

Download URL corvus_json_schema_rs-0.1.2-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Size 3.0 MB
Tags CPython 3.10 abi3 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
2e33b3ff62284c842bc41a1026801795790b2eb61e4574748cd7ee97c09e42a1
BLAKE2b-256 checksum
How to use checksums
7f073d6bc93f51f600de5589f603485cbb0c32bfc5939de07a8641420d4dd689
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release history Release notifications | RSS feed

0.1.4

8 release files

0.1.3

8 release files

This release

0.1.2 This release

8 release files

0.1.1

8 release files

0.1.0

8 release 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