Cargo Features

[dependencies]
satrs = { version = "0.2.0", default-features = false, features = ["std", "alloc", "serde", "crossbeam", "heapless", "defmt", "test_util"] }
default = std

The std feature is set by default whenever satrs is added without default-features = false somewhere in the dependency tree.

std default = alloc, bus, mio, socket2, thiserror

Enables use-std of postcard, std of serde and spacepackets and std of crossbeam-channel, downcast-rs, and num_enum

crossbeam-channel:

Enable to use APIs that require std. This is enabled by default.

NOTE: Disabling std feature is not supported yet.

Affects filestore::std_mod, cfdp::dest, cfdp::source, cfdp::StdCheckTimer, cfdp::StdRemoteEntityConfigProvider, event_man::std_mod, hal::std, satrs::executable, satrs::mode_tree, mode::std_mod, action::std_mod, pus::event_srv, pus::scheduler_srv, pus::test, pus::std_mod, request::std_mod, seq_count::stdmod

alloc std = downcast-rs, dyn-clone, hashbrown

Enables alloc of serde and spacepackets

serde:

Provide impls for types in the Rust core allocation and collections library including String, Box<T>, Vec<T>, and Cow<T>. This is a subset of std but may be enabled without depending on all of std.

Affects action::alloc_mod, cfdp::filestore, cfdp::CheckTimerCreator, user::OwnedMetadataRecvdParams, event_man::ListenerMapProvider.get_listeners, event_man::alloc_mod, satrs::cfdp, mode::alloc_mod, params::WritableToBeBytes.to_vec, pool::PoolProvider.read_as_vec, action::alloc_mod, event_man::alloc_mod, pus::alloc_mod, pus::alloc_mod.EcssTmSenderExt, pus::alloc_mod.EcssTcSenderExt, pus::alloc_mod.EcssTcReceiverExt, mode::std_mod, seq_count::SequenceCountProvider, tmtc::PacketSenderRawExt, tmtc::PacketSourceExt

serde alloc? std

Enables serde, serde of satrs-shared, serde of spacepackets

crossbeam = crossbeam-channel

Affects pus::std_mod.cb_mod

heapless

Enables heapless ^0.7

Affects event_man::heapless_mod

defmt

Enables defmt, defmt of spacepackets

doc-images test_util

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.

bus std
dyn-clone alloc?
hashbrown alloc?
mio std
socket2 std
thiserror std
crossbeam-channel crossbeam? std
downcast-rs alloc? std