LLZK is an open-source Intermediate Representation (IR) for Zero Knowledge (ZK) circuit languages. The LLZK project provides a flexible framework, inspired by LLVM, designed to unify diverse ZK front-end languages and backend ZK architectures.
The core of LLZK is contained in llzk-lib which defines the IR and passes for transformation, optimization, and analysis. It is written in C++ using MLIR, and it provides a C API for foreign language bindings. The lists below link to bindings for other programming languages, frontend ZK language translators, and backend targets for LLZK.
-
Programming language bindings:
-
Frontends:
-
Backends: