Skip to content
Franklin Delehelle edited this page Jun 11, 2023 · 3 revisions

What is Corset?

Corset is both a lisp-like language aiming at describing R1CS-backed constraint systems and the compiler and utility suite for it.

As a language, it provides a typed, high-level, expressive, extensible language to write constraints, that are then compiled down to operations usable on a field backing a R1CS-based constraint proving system providing the following operations: addition, subtraction, negation and multiplication.

As a utility suite, it provides many tools to export these compiled constraints to multiple languages, to inspect and debug constraint system, and to validate constraint systems on real numeric traces.

Installation

Corset only depends on the Rust language compiler. The build Corset, the Rust compiler must be available, installed either through your OS preferred method to install packages, or with Rustup.

Once the Rust compiler is available, Corset can simply be installed with

cargo install --git https://github.com/ConsenSys/corset

When new versions are released, repeating this command will ensure that you are using the latest available version.

Development

If you wish to work on Corset, you should first clone the Corset repo

git clone ssh://github.com/ConsenSys/corset

then build a local copy of Corset

cd corset && cargo build --release

that you can, later on, make available system-wide

cd corset && cargo install --path .
Clone this wiki locally