nova_snark/
lib.rs

1//! This library implements Nova, a high-speed recursive SNARK.
2#![deny(
3  warnings,
4  unused,
5  future_incompatible,
6  nonstandard_style,
7  rust_2018_idioms,
8  missing_docs
9)]
10#![allow(non_snake_case)]
11#![forbid(unsafe_code)]
12
13// main APIs exposed by this library
14pub mod nova;
15
16#[cfg(feature = "experimental")]
17pub mod neutron;
18
19// public modules
20pub mod errors;
21pub mod frontend;
22pub mod gadgets;
23pub mod provider;
24pub mod spartan;
25pub mod traits;
26
27// private modules
28mod constants;
29mod digest;
30mod r1cs;
31
32use traits::{commitment::CommitmentEngineTrait, Engine};
33
34// some type aliases
35type CommitmentKey<E> = <<E as Engine>::CE as CommitmentEngineTrait<E>>::CommitmentKey;
36type DerandKey<E> = <<E as Engine>::CE as CommitmentEngineTrait<E>>::DerandKey;
37type Commitment<E> = <<E as Engine>::CE as CommitmentEngineTrait<E>>::Commitment;
38type CE<E> = <E as Engine>::CE;