kimchi_stubs/
lib.rs

1//! The Marlin_plonk_stubs crate exports some functionalities
2//! and structures from the following the Rust crates to OCaml:
3//!
4//! * [Proof-systems](https://github.com/o1-labs/proof-systems),
5//!   a PLONK implementation.
6//! * [Arkworks](http://arkworks.rs/),
7//!   a math library that Proof-systems builds on top of.
8//!
9
10extern crate libc;
11
12/// Caml helpers
13#[macro_use]
14pub mod caml;
15
16/// Arkworks types
17pub mod arkworks;
18
19/// Utils
20pub mod urs_utils; // TODO: move this logic to proof-systems
21
22/// Vectors
23pub mod field_vector;
24pub mod gate_vector;
25
26/// Curves
27pub mod projective;
28
29/// SRS
30pub mod srs;
31
32/// Indexes
33pub mod pasta_fp_plonk_index;
34pub mod pasta_fq_plonk_index;
35
36/// Verifier indexes/keys
37pub mod plonk_verifier_index;
38
39pub mod pasta_fp_plonk_verifier_index;
40pub mod pasta_fq_plonk_verifier_index;
41
42/// Oracles
43pub mod oracles;
44
45/// Proofs
46pub mod pasta_fp_plonk_proof;
47pub mod pasta_fq_plonk_proof;
48
49/// Poseidon
50pub mod pasta_fp_poseidon;
51pub mod pasta_fq_poseidon;
52
53/// Linearization helpers
54pub mod linearization;
55
56/// Handy re-exports
57pub use {
58    kimchi::circuits::{
59        gate::{caml::CamlCircuitGate, CurrOrNext, GateType},
60        scalars::caml::CamlRandomOracles,
61        wires::caml::CamlWire,
62    },
63    kimchi::proof::caml::CamlProofEvaluations,
64    kimchi::prover::caml::{
65        CamlLookupCommitments, CamlProofWithPublic, CamlProverCommitments, CamlProverProof,
66    },
67    mina_poseidon::sponge::caml::CamlScalarChallenge,
68    poly_commitment::{commitment::caml::CamlPolyComm, ipa::caml::CamlOpeningProof},
69};