Cargo Features
[dependencies]
ecies-ed25519-morus = { version = "0.2.0", default-features = false, features = ["std", "aarch64-optimizations", "pure"] }
- default = std
-
The
std
feature is set by default wheneverecies-ed25519-morus
is added without
somewhere in the dependency tree.default-features = false - std default
-
Enables std of blake3, ed25519-dalek, hex, rand_core, thiserror-no-std, and zeroize
blake3:
This crate uses libstd for std::io trait implementations, and also for runtime CPU feature detection. This feature is enabled by default. If you use --no-default-features, the only way to use the SIMD implementations in this
crate is to enable the corresponding instruction sets statically for the entire build, with e.g. RUSTFLAGS="-C target-cpu=native". - aarch64-optimizations
-
Enables aarch64 of zeroize and neon of blake3
blake3:
The NEON implementation does not participate in dynamic feature detection,
which is currently x86-only. If "neon" is on, NEON support is assumed. Note that AArch64 always supports NEON, but support on ARMv7 varies. The NEON implementation uses C intrinsics and requires a C compiler. - pure
-
blake3:
By default on x86_64, this crate uses Samuel Neves' hand-written assembly implementations for SSE4.1, AVX2, and AVX512. (These provide both the best runtime performance, and the fastest build times.) And by default on 32-bit x86, this crate uses Rust intrinsics implementations for SSE4.1 and AVX2, and a C intrinsics implementation for AVX-512. In both cases, if a C compiler is not detected, or if AVX-512 support is missing from the detected compiler,
build.rs automatically falls back to a pure Rust build. This feature forces that fallback, for testing purposes. (Note that in CI testing, we set the BLAKE3_CI environment variable, which instructs build.rs to error out rather than doing an automatic fallback.)
ecies-ed25519-morus has 4 features without comments.