Cargo Features

[dependencies]
curve25519-dalek-organism = { version = "1.2.3", default-features = false, features = ["std", "alloc", "nightly", "yolocrypto", "u32_backend", "u64_backend", "simd_backend", "avx2_backend", "stage2_build", "serde"] }
default = std, u64_backend

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

std default = alloc

Enables std of rand_core ^0.5.1 and subtle

alloc std

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 clear_on_drop =0.2.3 and subtle

subtle:

DEPRECATED: As of 2.4.1, this feature does nothing.

Affects backend::vector

yolocrypto
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

Old name for the SIMD backend, preserved for compatibility

stage2_build

Signals that we're in the main build stage. This is off by default,
to signal stage 1 of the build, where build.rs loads the library into the build script. Then, the build.rs emits the stage2_build feature before the main-stage compilation.

Affects scalar_mul::vartime_double_base, constants::RISTRETTO_BASEPOINT_TABLE

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.

Note: we generate precomputed tables by building the crate twice: once as part of build.rs, and then once "for real".

This means that the [dependencies] and [build-dependencies] sections must match exactly, since the build.rs uses the crate itself as a library.

serde implicit feature

Enables serde

serde:

A generic serialization/deserialization framework

packed_simd simd_backend?