This repository contains the Zakura Common libraries: the foundational Rust crates used in Zakura and made available for the Zcash ecosystem. Use this stack in your wallets or in other tools for better performance.
zakura-primitives(forked fromzcash_primitives 0.30.0)zakura-keys(forked fromzcash_keys 0.16.1)
zakura-orchard(forked fromorchard 0.15.5)zakura-sapling-crypto(forked fromsapling-crypto 0.7.0)zakura-proofs(forked fromzcash_proofs 0.30.0)
zakura-halo2-proofs(forked fromhalo2_proofs 0.3.5)zakura-halo2-gadgets(forked fromhalo2_gadgets 0.5.0)zakura-halo2-poseidon(forked fromhalo2_poseidon 0.1.0)zakura-halo2-legacy-pdqsort(forked fromhalo2_legacy_pdqsort 0.1.0)
zakura-pairing(forked frompairing 0.23.0)zakura-bls12-381(forked frombls12_381 0.8.0)zakura-jubjub(forked fromjubjub 0.10.0)zakura-bellman(forked frombellman 0.14.0)zakura-pasta-curves(forked frompasta_curves 0.5.2)zakura-sinsemilla(forked fromsinsemilla 0.1.0)zakura-reddsa(forked fromreddsa 0.5.2)zakura-redjubjub(forked fromredjubjub 0.8.0)
zakura-redjubjub is a thin wrapper over zakura-reddsa, so the two are maintained together.
rust-toolchain.toml pins the development toolchain to
Rust 1.97.1, so cargo in a checkout (builds, Clippy, rustfmt, and the
benchmarks in crates/orchard/benches)
uses the same compiler for everyone. The crates themselves keep a minimum
supported Rust version of 1.91 (rust-version in Cargo.toml),
which CI builds separately; raising the MSRV is a consumer-visible change,
while bumping the development pin is not. The workspace uses Cargo's
MSRV-aware resolver, so cargo update prefers dependency releases that the
1.91 toolchain can build. To reproduce the MSRV check locally:
rustup toolchain install 1.91.0 --profile minimal
cargo +1.91.0 check --locked --workspacePublished crates in this repository follow Semantic Versioning except for feature removals explicitly recorded in the permanent SemVer ignore list. All other API compatibility failures block CI. See the SemVer policy for enforcement details and local checks.
All code in this repository is licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.