paramant-core is a Rust Cargo workspace (a post-quantum crypto library, not a
network service). There are no long-running daemons, servers, or ports in this
repo: "running the application" means building the workspace and running the test
suites + the NAPI binding interop check. Full product-level e2e (frontend -> relay
-> core) lives in the separate paramant-relay repo and cannot be exercised here.
Build/test/lint commands are documented in README.md (Quick start) and
.github/workflows/ci.yml. The canonical flow is cargo build then
cargo test --all (unit + KAT vectors + proptests), plus
cargo test -p cross-impl-validator, cargo fmt --all -- --check, and
cargo clippy --all-targets --all-features -- -D warnings.
- Native C builds from source. The
oqs(liboqs) andaws-lc-rs(AWS-LC) crates compile C libraries via CMake + bindgen, so the system packagescmake,ninja-build,clang, andlibclang-devare mandatory (see theInstall liboqs build depsstep in.github/workflows/ci.yml). Without themcargo build/cargo testfail. Onlycross-impl-validator(pure RustCrypto) builds without them. A cleancargo buildtakes ~40s because of these C builds. - Rust toolchain is pinned to 1.95.0 via
rust-toolchain.tomland is installed automatically by rustup; do not override it. - End-to-end "hello world" / binding check (exercises KEM, AEAD, ML-DSA, and
the send/parashare envelopes through the published
@paramant/coreaddon):It loads the rawcargo build -p paramant-core-node --release cp target/release/libparamant_core_node.so /tmp/paramant-core.node PARAMANT_ADDON=/tmp/paramant-core.node node crates/paramant-core-node/test/interop.mjs
.nodecdylib directly;@napi-rs/cliis intentionally kept out of the repo (ADR-0006), so nonpm installis needed. - Commit hygiene gotchas.
.githooks/pre-commitrejects non-ASCII typography in text files (use--not em-dash, straight quotes),node_modules/lockfiles, and straypackage.jsonoutside a binding crate root. Commits must use Conventional Commits and a DCO sign-off (git commit --signoff); seeCONTRIBUTING.md.