Skip to content

Circom interpreter to arithmetic circuit description

License

Notifications You must be signed in to change notification settings

namnc/circom-2-arithc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

Circom interpreter to arithmetic circuit description

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published