Cargo Features

[dependencies]
nalgebra = { version = "0.35.0", default-features = false, features = ["std", "alloc", "sparse", "debug", "io", "compare", "libm", "libm-force", "macros", "convert-mint", "convert-bytemuck", "convert-glam030", "convert-glam031", "convert-glam032", "convert-glam033", "serde-serialize-no-std", "serde-serialize", "rkyv-serialize-no-std", "rkyv-serialize", "rand-no-std", "rand", "arbitrary", "proptest-support", "rkyv-safe-deser", "slow-tests", "alga", "rayon", "defmt", "encase"] }
default = macros, std

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

std default = matrixmultiply

Enables std of approx, optional glam ^0.30, optional glam ^0.31, optional glam ^0.32, optional glam, num-complex, num-rational, num-traits, and simba

Affects alias::DMatrix, alias::MatrixXx1, alias::MatrixXx2, alias::MatrixXx3, alias::MatrixXx4, alias::MatrixXx5, alias::MatrixXx6, alias::DVector, alias::RowDVector

alloc

Affects alias::DMatrix, alias::MatrixXx1, alias::MatrixXx2, alias::MatrixXx3, alias::MatrixXx4, alias::MatrixXx5, alias::MatrixXx6, alias::DVector, alias::RowDVector

sparse

Affects nalgebra::sparse

debug = rand

Enables num-complex of approx

Affects nalgebra::debug

io = pest, pest_derive

Affects nalgebra::io

compare = matrixcompare-core
libm

Enables libm of optional glam ^0.30, optional glam ^0.31, optional glam ^0.32, optional glam, and simba

libm-force

Enables libm_force of simba

macros default = nalgebra-macros
convert-mint = mint

Conversion

convert-bytemuck = bytemuck

Enables bytemuck of num-complex

convert-glam030 = glam030
convert-glam031 = glam031
convert-glam032 = glam032
convert-glam033 = glam033
serde-serialize-no-std serde-serialize? = serde

Serialization To use serde in a #[no-std] environment, enable the serde-serialize-no-std feature instead of serde-serialize. Serialization of dynamically-sized matrices/vectors require serde-serialize.

Enables serde of num-complex

serde-serialize = serde-serialize-no-std

Enables std of serde

serde:

Provide impls for common standard library types like Vec<T> and HashMap<K, V>.
Requires a dependency on the Rust standard library.

rkyv-serialize-no-std rkyv-serialize?

Enables size_32 of rkyv ^0.7.41

TODO: once rkyv is updated to 0.8, we could consider removing the allow(unsafe_op_in_unsafe_fn).

rkyv-serialize rkyv-safe-deser? = rkyv-serialize-no-std

Enables std and validation of rkyv ^0.7.41

rand-no-std rand? = rand-package

Randomness To use rand in a #[no-std] environment, enable the rand-no-std feature instead of rand.

Affects helper::reject_rand

rand debug? = rand-no-std, rand_distr

Enables std, std_rng and thread_rng of rand

arbitrary = quickcheck

Tests

Affects helper::reject

proptest-support = proptest

Affects nalgebra::proptest

rkyv-safe-deser = rkyv-serialize

Enables validation of rkyv ^0.7.41

slow-tests

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.

nalgebra-macros macros
rand-package rand? rand-no-std?

Enables rand

alga implicit feature

Enables alga

alga:

Abstract algebra for Rust

rand_distr rand?
matrixmultiply std
serde serde-serialize? serde-serialize-no-std?
rkyv rkyv-safe-deser? rkyv-serialize? rkyv-serialize-no-std?

Enables rkyv ^0.7.41

mint convert-mint?
quickcheck arbitrary?
pest io?
pest_derive io?
bytemuck convert-bytemuck?
matrixcompare-core compare?
glam030 convert-glam030?

Enables glam ^0.30

glam031 convert-glam031?

Enables glam ^0.31

glam032 convert-glam032?

Enables glam ^0.32

glam033 convert-glam033?

Enables glam

rayon implicit feature

Enables rayon

rayon:

Simple work-stealing parallelism for Rust

Affects base::par_iter

defmt implicit feature
encase implicit feature
proptest proptest-support?