lib_q_stark_commit/lib.rs
1//! A framework for various (not necessarily hiding) cryptographic commitment schemes.
2
3#![no_std]
4
5extern crate alloc;
6
7mod adapters;
8mod domain;
9mod mmcs;
10mod pcs;
11
12/// A mock, non-hiding PCS (`TrivialPcs`) for exercising the `Pcs`/`PolynomialSpace` traits,
13/// ported from upstream Plonky3's `p3-commit::testing`.
14///
15/// `#[cfg(test)]` ONLY, deliberately — do not re-add a `test-utils` feature exposing this to
16/// downstream crates without first fixing the publish order. Upstream gates it on `test` OR an
17/// opt-in feature, but that feature would need `lib-q-stark-challenger` and `lib-q-stark-dft` as
18/// optional dependencies, and `lib-q-stark-challenger` transitively needs `lib-q-stark-mersenne31`
19/// and the SHAKE/SHA3 adapters, which publish in LATER tiers than this crate. That ordering is not
20/// satisfiable: it broke the v0.0.10 release after 51 crates had already gone to crates.io
21/// (`failed to select a version for the requirement lib-q-stark-challenger = "^0.0.10"`).
22/// Exposing it downstream requires moving this crate after tier 9 first.
23#[cfg(test)]
24pub mod testing;
25
26pub use adapters::*;
27pub use domain::*;
28pub use mmcs::*;
29pub use pcs::*;