Skip to main content

Crate binius_frontend

Crate binius_frontend 

Source
Expand description

Circuit construction frontend for Binius64.

This crate provides the CircuitBuilder API for constructing arithmetic circuits that compile to Binius64 constraint systems. You describe your computation as a graph of operations on 64-bit words, and the frontend compiles it to AND/MUL constraints.

§Usage Flow

Use CircuitBuilder to construct your circuit. Call methods like add_witness() and add_inout() to create Wires - handles to 64-bit values that will exist during proof generation. Use operations like band(), bxor(), and iadd_32() to transform these wires, building up your computation graph.

When you call build(), the builder compiles your graph into a Circuit. This circuit contains the optimized constraint system and everything needed for proof generation.

To generate a witness, create a WitnessFiller from the circuit. Assign concrete values to your input wires, then call populate_wire_witness() to compute all intermediate values through circuit evaluation.

Use CircuitStat to inspect metrics like constraint counts and wire usage, helpful for optimization and debugging.

Re-exports§

pub use stat::CircuitStat;

Modules§

hints
Hint system.
stat
Circuit statistics module for analyzing constraint counts and circuit complexity.
util
Various utilities for circuit building.

Structs§

Circuit
An artifact that represents a built circuit.
CircuitBuilder
Circuit builder for constructing zero-knowledge proof circuits.
Wire
A wire through which a value flows in and out of gates.
WitnessFiller
A helper struct for filling witness values in a circuit.

Traits§

Hint
Hint handler trait for extensible operations.