namnc / circom-2-arithc

Circom interpreter to arithmetic circuit description
MIT License
50 stars 8 forks source link

Circom To Arithmetic Circuit

MIT licensed Build Status codecov

This library enables the creation of arithmetic circuits from circom programs.

Supported Circom Features

Category Type Supported
Statements InitializationBlock
Block
Substitution
Declaration
IfThenElse
While
Return
MultSubstitution
UnderscoreSubstitution
ConstraintEquality
LogCall
Assert
Expressions Call
InfixOp
Number
Variable
PrefixOp
InlineSwitchOp
ParallelOp
AnonymousComp
ArrayInLine
Tuple
UniformArray

Circomlib

WIP

Requirements

Getting Started

cargo build --release
cargo run --release

The compiled circuit and circuit report can be found in the ./output directory.

Boolean Circuits

Although this library is named after arithmetic circuits, the CLI integrates boolify allowing further compilation down to boolean circuits.

To achieve this, add --boolify-width DESIRED_INT_WIDTH to your command:

cargo run --release -- --boolify-width 16

ZK/MPC/FHE backends:

Contributing

Contributions are welcome!

License

This project is licensed under the MIT License - see the LICENSE file for details.