binius_prover/lib.rs
1// Copyright 2025 Irreducible Inc.
2// Copyright 2026 The Binius Developers
3
4//! High-level proof generation for Binius64 constraint systems.
5//!
6//! This crate provides the main [`Prover`] struct for generating zero-knowledge proofs
7//! that a witness satisfies a constraint system. It is the prover-side counterpart to
8//! `binius_verifier`.
9//!
10//! # When to use this crate
11//!
12//! Use this crate when you have a compiled constraint system and witness and need to
13//! generate a proof. For building circuits and compiling them to constraint systems,
14//! see `binius_frontend`.
15//!
16//! # Key types
17//!
18//! - [`Prover`] - Main proving interface; call [`Prover::setup`] with a verifier, then
19//! [`Prover::prove`] with witness data
20//! - [`IOPProver`] - Core IOP proving logic, independent of the compilation strategy
21//! - [`KeyCollection`] - Precomputed keys for shift reduction (can be serialized for reuse)
22//!
23//! # Related crates
24//!
25//! - `binius_verifier` - Verification counterpart
26//! - `binius_frontend` - Circuit construction and compilation
27//! - `binius_spartan_prover` - Spartan-based proving (alternative backend)
28
29#![warn(rustdoc::missing_crate_level_docs)]
30
31pub mod bit_matrix;
32mod error;
33pub mod fold_word;
34pub mod protocols;
35mod prove;
36pub mod ring_switch;
37pub mod zk_config;
38
39pub use binius_field::arch::OptimalPackedB128;
40pub use binius_hash as hash;
41pub use binius_iop_prover::{fri, merkle_tree};
42pub use error::*;
43pub use protocols::shift::KeyCollection;
44pub use prove::*;