zyga 0.5.1

ZYGA zero-knowledge proof system - CLI and library for generating ZK proofs
Documentation
//! ZYGA zero-knowledge proof system
//!
//! A high-performance zero-knowledge proof system using BN254 elliptic curve and Groth16-like construction.
//!
//! # CLI Usage
//!
//! For detailed CLI usage and examples, see the [CLI Usage Guide](https://github.com/darklakefi/zyga/blob/main/rust/zyga/CLI_USAGE.md)
//!
//! The CLI provides a two-step workflow:
//! - `setup`: Generate proving/verification keys from constraints
//! - `prove`: Generate proofs using proving key and witness values

#![cfg_attr(not(feature = "std"), no_std)]

#[cfg(not(feature = "std"))]
extern crate alloc;

// Define println! macro for no_std environments (does nothing)
#[cfg(not(feature = "std"))]
#[allow(unused_macros)]
macro_rules! println {
    ($($arg:tt)*) => {};
}

#[cfg(feature = "std")]
pub mod code_generation;
#[cfg(feature = "std")]
pub mod constraint;
#[cfg(feature = "std")]
pub mod dag;
pub mod errors;
#[cfg(feature = "std")]
pub mod pairing;
#[cfg(feature = "std")]
pub mod polynomial;
#[cfg(feature = "std")]
pub mod proving_key;
#[cfg(feature = "solana")]
pub mod verification;

pub mod common;
pub mod debug;
pub use errors::ZkError;

pub use common::{G1Point, G2Point, Proof, TrustedSetup};
#[cfg(feature = "std")]
pub use constraint::{compile_constraints, CompilationResult};
#[cfg(feature = "std")]
pub use dag::{ExprId, Expression, ExpressionDAG};
#[cfg(feature = "std")]
pub use pairing::{create_proving_key, generate_proof, generate_trusted_setup, PairingProof};
#[cfg(feature = "std")]
pub use polynomial::{lagrange_interpolate, vanishing_polynomial, LagrangePolynomial};
#[cfg(feature = "std")]
pub use proving_key::{ProvingKey, VerificationKey};
#[cfg(feature = "solana")]
pub use verification::{process_check_pairing, process_check_pairing_relaxed, ComputeCoeffsFn};