Skip to content

Latest commit

 

History

History
88 lines (62 loc) · 3.1 KB

README.md

File metadata and controls

88 lines (62 loc) · 3.1 KB

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

  • Rust: To install, follow the instructions found here.

Getting Started

  • Write your circom program in the input directory under the circuit.circom name.

  • Build the program

cargo build --release
  • Run the compilation
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.