Metadata-Version: 2.4
Name: speedrunpapi
Version: 0.7.1
Summary: Output-determinism analysis for Circom circuits and R1CS; Python entry to the shared Node engine, with an independent Python checker
Author: Colony Technology
Project-URL: Homepage, https://colony.technology
Project-URL: Source, https://github.com/lmtlssss/speedrunpapi
Keywords: circom,r1cs,zero-knowledge,under-constrained,formal verification,determinism
Classifier: Programming Language :: Python :: 3
Classifier: Environment :: Console
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE.md
Provides-Extra: onnx
Requires-Dist: onnx<2,>=1.16; extra == "onnx"
Requires-Dist: numpy<3,>=1.26; extra == "onnx"
Dynamic: license-file

# speedrunpapi for Python

Output-determinism analysis for Circom circuits and R1CS. This package installs the same bundled command-line tool as the npm distribution, plus an independent Python checker for its reports.

```sh
pip install speedrunpapi
speedrunpapi scan circuit.circom
speedrunpapi scan circuit.circom --report circuit.report.json
python -m speedrunpapi.verifiers.determinism circuit.r1cs circuit.report.json
```

The scanner needs Node.js 20 or later on `PATH`, and the circom compiler for `.circom` input. The checker (`speedrunpapi.verifiers.determinism`) needs only the Python standard library: it parses the R1CS itself and replays the derivation or re-evaluates the counterexample without the scanner.

Full documentation: https://github.com/lmtlssss/speedrunpapi

Versions before 0.7.1 classified sources by template name and keyword and could report `Certified` for a circuit whose outputs were unconstrained. Those results were not proofs. If you relied on one, scan again.

`pip install 'speedrunpapi[onnx]'` adds the dependencies of the separate ONNX checker used by the hosted optimization jobs.
