Cargo Features

[dependencies]
satrs = { version = "0.3.0-alpha.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

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

crossbeam-channel:

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

NOTE: Disabling std feature is not supported yet.

Affects event_man::std_mod, hal::std, health::HealthTableMapSync, satrs::executable, satrs::mode_tree, mode::std_mod, power::std_mod, action::std_mod, pus::event_srv, pus::scheduler_srv, pus::test, pus::std_mod, request::std_mod

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, event_man::ListenerMapProvider.get_listeners, event_man::alloc_mod, satrs::dev_mgmt, satrs::scheduling, satrs::subsystem, mode::alloc_mod, mode_tree::alloc_mod, params::WritableToBeBytes.to_vec, pool::PoolProvider.read_as_vec, action::alloc_mod, event_man::alloc_mod, pus::alloc_mod.EcssTmSenderExt, pus::alloc_mod.EcssTcSenderExt, pus::alloc_mod.EcssTcReceiverExt, mode::std_mod, 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 = static_cell

Enables heapless

Affects pool::heapless_mod, event_man::heapless_mod

defmt

Enables defmt, defmt of spacepackets

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.

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