Skip to content

Home > Circuit Tooling

Circuit Tooling

Last modified: 2026-10-27

Circuit DSLs and proving libraries for circuit-based proofs. zkVMs are in zkVMs, Sigma-based libraries in Sigma Proofs.

Also includes concept notes on Circuits and Sumcheck-based proofs.

Circuit DSLs

Languages for writing arithmetic circuits without touching the underlying proof system directly.

Note Status Description
Noir active Rust-like DSL by Aztec; compiles to ACIR, targets UltraHonk/Barretenberg
Circom2 active Template-based circuit language; outputs R1CS; widely used in production
ZoKrates deprecated Early high-level ZKP DSL; R1CS backend

Proving Libraries

Low-level backends and libraries that implement proof systems.

Note Status Description
Barretenberg active Aztec's C++ proving library; implements HONK and UltraHonk; Noir's default backend
Halo2 maintained Zcash/EFF PLONKish proving system in Rust; wide ecosystem adoption
gnark active Fast Go library supporting Groth16 and PLONK; production-grade
Spartan Framework maintained Microsoft Research's Rust library for Spartan-based proofs
Ligero Prover active Implementation of the Ligero MPC-in-the-head proof system