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#![cfg_attr(not(test), warn(clippy::print_stdout, clippy::print_stderr))]
13
14// main APIs exposed by this library
15pub mod nova;
16
17#[cfg(feature = "experimental")]
18pub mod neutron;
19
20// public modules
21pub mod constants;
22pub mod digest;
23pub mod errors;
24pub mod frontend;
25pub mod gadgets;
26pub mod provider;
27pub mod r1cs;
28pub mod spartan;
29pub mod traits;
30
31use traits::{commitment::CommitmentEngineTrait, Engine};
32
33// some type aliases
34type CommitmentKey<E> = <<E as Engine>::CE as CommitmentEngineTrait<E>>::CommitmentKey;
35type DerandKey<E> = <<E as Engine>::CE as CommitmentEngineTrait<E>>::DerandKey;
36type Commitment<E> = <<E as Engine>::CE as CommitmentEngineTrait<E>>::Commitment;
37type CE<E> = <E as Engine>::CE;