Skip to Content
⚠️ This documentation is AI-generated, for personal use only, and is not supported or endorsed by Google.
ReferenceOverview

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:

  1. A one-paragraph summary.
  2. When to reach for it — concrete situations where you’d touch the module.
  3. Design overview — the shape of the abstraction and the parameters you need to know.
  4. API surface — the exported types and functions, with short C++ signatures and the invariants they assume.
  5. 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 zk composer.
  • Serialization — the serialized QuadCircuit format.
Last updated on