Skip to main content

No project description provided

Project description

Quick Start

Setup

PyChiquito uses PyO3 and Maturin to expose Rust APIs to Python. Maturin requires the user to locally build a Python virtual environment. Run the following script to create a Python virtual environment, install required packages, and build the project.

# clone this repo and its submodules
git clone --recursive https://github.com/trangnv/chiquito

# Create a virtual environment
python3 -m venv .env

# Activate the virtual environment
source .env/bin/activate

# Install the required packages
pip install -r requirements.txt

# Build the project
maturin develop

If the above doesn't work, follow the guide here: https://pyo3.rs/main/getting_started#python

Testing with examples

Run fibonacci.py example file using the following script:

python3 test/fibonacci.py

If setup is correct, you should see a print out of the parsed Rust AST circuit and TraceWitness. All Halo2 and Chiquito Debug messages for generating and verifying proof should also appear in the terminal.

Technical Design

Python front end -> Python AST object/TraceWitness -> serialize to JSON string -> pass JSON string to Rust using PyO3 -> deserialize JSON string to Chiquito AST/TraceWitness -> store AST in Rust HashMap<UUID, AST> -> pass back UUID to Python -> generate and verify proof from Python with AST UUID and TraceWitness JSON

Notes:

Project details


Download files

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

Source Distribution

chiquito-0.1.0.tar.gz (128.9 kB view hashes)

Uploaded Source

Built Distributions

chiquito-0.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

chiquito-0.1.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.9 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ s390x

chiquito-0.1.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.8 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ppc64le

chiquito-0.1.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.7 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARMv7l

chiquito-0.1.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.6 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

chiquito-0.1.0-pp310-pypy310_pp73-manylinux_2_12_i686.manylinux2010_i686.whl (1.7 MB view hashes)

Uploaded PyPy manylinux: glibc 2.12+ i686

chiquito-0.1.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

chiquito-0.1.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.9 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ s390x

chiquito-0.1.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.8 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ppc64le

chiquito-0.1.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.7 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARMv7l

chiquito-0.1.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.6 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

chiquito-0.1.0-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.whl (1.7 MB view hashes)

Uploaded PyPy manylinux: glibc 2.12+ i686

chiquito-0.1.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

chiquito-0.1.0-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.9 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ s390x

chiquito-0.1.0-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.8 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ppc64le

chiquito-0.1.0-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.7 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARMv7l

chiquito-0.1.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.6 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

chiquito-0.1.0-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl (1.7 MB view hashes)

Uploaded PyPy manylinux: glibc 2.12+ i686

chiquito-0.1.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

chiquito-0.1.0-pp37-pypy37_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.9 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ s390x

chiquito-0.1.0-pp37-pypy37_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.8 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ppc64le

chiquito-0.1.0-pp37-pypy37_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.7 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARMv7l

chiquito-0.1.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.6 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

chiquito-0.1.0-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl (1.7 MB view hashes)

Uploaded PyPy manylinux: glibc 2.12+ i686

chiquito-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

chiquito-0.1.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.9 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ s390x

chiquito-0.1.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.8 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ppc64le

chiquito-0.1.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.7 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARMv7l

chiquito-0.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.6 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

chiquito-0.1.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.whl (1.7 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.12+ i686

chiquito-0.1.0-cp311-none-win_amd64.whl (540.7 kB view hashes)

Uploaded CPython 3.11 Windows x86-64

chiquito-0.1.0-cp311-none-win32.whl (529.1 kB view hashes)

Uploaded CPython 3.11 Windows x86

chiquito-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

chiquito-0.1.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.9 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ s390x

chiquito-0.1.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.8 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ppc64le

chiquito-0.1.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.7 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARMv7l

chiquito-0.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.6 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

chiquito-0.1.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.whl (1.7 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.12+ i686

chiquito-0.1.0-cp311-cp311-macosx_11_0_arm64.whl (717.5 kB view hashes)

Uploaded CPython 3.11 macOS 11.0+ ARM64

chiquito-0.1.0-cp311-cp311-macosx_10_7_x86_64.whl (747.0 kB view hashes)

Uploaded CPython 3.11 macOS 10.7+ x86-64

chiquito-0.1.0-cp310-none-win_amd64.whl (540.7 kB view hashes)

Uploaded CPython 3.10 Windows x86-64

chiquito-0.1.0-cp310-none-win32.whl (529.1 kB view hashes)

Uploaded CPython 3.10 Windows x86

chiquito-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

chiquito-0.1.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.9 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ s390x

chiquito-0.1.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.8 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ppc64le

chiquito-0.1.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.7 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARMv7l

chiquito-0.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.6 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

chiquito-0.1.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl (1.7 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.12+ i686

chiquito-0.1.0-cp310-cp310-macosx_11_0_arm64.whl (717.5 kB view hashes)

Uploaded CPython 3.10 macOS 11.0+ ARM64

chiquito-0.1.0-cp310-cp310-macosx_10_7_x86_64.whl (747.1 kB view hashes)

Uploaded CPython 3.10 macOS 10.7+ x86-64

chiquito-0.1.0-cp39-none-win_amd64.whl (540.7 kB view hashes)

Uploaded CPython 3.9 Windows x86-64

chiquito-0.1.0-cp39-none-win32.whl (529.1 kB view hashes)

Uploaded CPython 3.9 Windows x86

chiquito-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

chiquito-0.1.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.9 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ s390x

chiquito-0.1.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.8 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ppc64le

chiquito-0.1.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.7 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARMv7l

chiquito-0.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.6 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

chiquito-0.1.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl (1.7 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.12+ i686

chiquito-0.1.0-cp38-none-win_amd64.whl (540.7 kB view hashes)

Uploaded CPython 3.8 Windows x86-64

chiquito-0.1.0-cp38-none-win32.whl (529.0 kB view hashes)

Uploaded CPython 3.8 Windows x86

chiquito-0.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

chiquito-0.1.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.9 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ s390x

chiquito-0.1.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.8 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ppc64le

chiquito-0.1.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.7 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARMv7l

chiquito-0.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.6 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

chiquito-0.1.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl (1.7 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.12+ i686

chiquito-0.1.0-cp37-none-win_amd64.whl (540.7 kB view hashes)

Uploaded CPython 3.7 Windows x86-64

chiquito-0.1.0-cp37-none-win32.whl (528.7 kB view hashes)

Uploaded CPython 3.7 Windows x86

chiquito-0.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

chiquito-0.1.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.9 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ s390x

chiquito-0.1.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.8 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ppc64le

chiquito-0.1.0-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.7 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARMv7l

chiquito-0.1.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.6 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

chiquito-0.1.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl (1.7 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.12+ i686

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page