Cargo Features

[dependencies]
noah-curve25519-dalek = { version = "4.0.0", default-features = false, features = ["std", "alloc", "nightly", "u32_backend", "u64_backend", "fiat_u64_backend", "fiat_u32_backend", "simd_backend", "avx2_backend", "serde"] }
default = std, u64_backend

These default features are set whenever noah-curve25519-dalek is added without default-features = false somewhere in the dependency tree.

std default = alloc

Enables std of rand_core and subtle

alloc std

Enables alloc of zeroize

Affects scalar_mul::straus, scalar_mul::precomputed_straus, scalar_mul::pippenger, scalar_mul::straus, scalar_mul::precomputed_straus, scalar_mul::pippenger, edwards::VartimeEdwardsPrecomputation, ristretto::VartimeRistrettoPrecomputation

nightly simd_backend?

Enables nightly of subtle

subtle:

DEPRECATED: As of 2.4.1, this feature does nothing.

Affects backend::vector

u32_backend

The u32 backend uses u32s with u64 products.

Affects serial::u32, field::FieldElement

u64_backend default simd_backend?

The u64 backend uses u64s with u128 products.

Affects serial::u64, field::FieldElement

fiat_u64_backend = fiat-crypto

fiat-u64 backend (with formally-verified field arith) uses u64s with u128 products.

Affects serial::fiat_u64, field::FieldElement

fiat_u32_backend = fiat-crypto

fiat-u32 backend (with formally-verified field arith) uses u32s with u64 products.

Affects serial::fiat_u32, field::FieldElement

simd_backend avx2_backend? = nightly, packed_simd, u64_backend

The SIMD backend uses parallel formulas, using either AVX2 or AVX512-IFMA.

Affects backend::vector

avx2_backend = simd_backend

DEPRECATED: this is now an alias for simd_backend and may be removed in some future release.

Features from optional dependencies

In crates that don't use the dep: syntax, optional dependencies automatically become Cargo features. These features may have been created by mistake, and this functionality may be removed in the future.

serde implicit feature

Enables serde

serde:

A generic serialization/deserialization framework

packed_simd simd_backend?

Enables packed_simd_2

The original packed_simd package was orphaned, see https://github.com/rust-lang/packed_simd/issues/303#issuecomment-701361161

fiat-crypto fiat_u32_backend? fiat_u64_backend?

Enables fiat-crypto ^0.1.6