blvm_secp256k1/lib.rs
1//! commons-secp256k1: Rust reimplementation of libsecp256k1
2//!
3//! Pure Rust implementation with vendored ASM for hot paths (ARM32 field, x86_64 scalar).
4//! No FFI to C — all logic in Rust.
5//!
6//! ## Context-free API
7//!
8//! This crate is **stateless and context-free**. Unlike rust-secp256k1, there is no
9//! `Secp256k1<C>` context object. All functions take raw bytes, points, or scalars
10//! directly. No global mutable state. MuSig uses a `Session` struct (created from
11//! aggnonce + msg + keyagg_cache) — this is algorithm state, not a global context.
12
13pub mod ecdh;
14pub mod ecdsa;
15pub mod ecmult;
16#[cfg(any(target_arch = "x86_64", target_arch = "aarch64"))]
17pub mod ellswift;
18pub mod field;
19pub mod group;
20#[cfg(any(target_arch = "x86_64", target_arch = "aarch64"))]
21pub(crate) mod modinv64;
22pub mod musig;
23pub mod scalar;
24pub mod schnorr;
25pub mod schnorr_half_agg;
26pub mod taproot;