Reference
Technical reference for the Longfellow ZK C++ library, organized by layer rather than alphabetically. If you are building a ZK system with Longfellow’s primitives, this is the section you will spend the most time in.
How the reference is organized
Longfellow stacks up in five layers. Each Reference group covers one layer, and the groups are ordered bottom-up — the way the library itself builds.
How to read a reference page
Every page follows the same shape:
- A one-paragraph summary.
- When to reach for it — concrete situations where you’d touch the module.
- Design overview — the shape of the abstraction and the parameters you need to know.
- API surface — the exported types and functions, with short C++ signatures and the invariants they assume.
- See it used — links to the authoritative test files in
longfellow-zk/lib/**/*_test.cc.
Invariants, gotchas, and traps are woven into the surrounding prose rather than siloed in a dedicated section.
Groups
- Algebra & Fields — fields, polynomial arithmetic, EC, binary fields.
- Arrays — witness and polynomial containers.
- Circuits — circuit authoring (logic + compiler) and reusable gadgets.
- Proof System — sumcheck, Ligero, Merkle, transcript, and the top-level
zkcomposer. - Serialization — the serialized
QuadCircuitformat.
Last updated on