Cargo Features

[dependencies]
curve25519-dalek-ng = { version = "4.1.1", default-features = false, features = ["std", "alloc", "nightly", "u32_backend", "u64_backend", "simd_backend", "avx2_backend", "serde"] }
default = std, u64_backend

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

std default = alloc

Enables std of rand_core and subtle-ng

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-ng

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

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