Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

SDK crates

The crate rustdoc is the reference for each SDK crate: its responsibilities, public interface, contracts and integration points. This book teaches the concepts and the workflows. Build the API documentation of the whole workspace with:

cargo doc --no-deps --open

Released crates are also published on docs.rs, for example rohi-sdk (the entry point and cross-cutting concepts) and rohi-hal. The source is in crates/.

CrateWhat it is
rohi-hal, rohi-hal-esptyped measurements, sensor drivers and runtime; ESP boards
rohi-config, rohi-config-derive, rohi-config-esptransactional configuration store, derive macros and flash backend
rohi-service, rohi-service-derivethe config, status and action model and registries
rohi-net, rohi-net-espWi-Fi and IP networking, BLE transport traits, ESP backend
rohi-control-proto, rohi-control, rohi-control-blethe control protocol, its dispatcher and its firmware-side BLE binding (the rohi tool reuses only its frame and uuid modules)
rohi-connectivity, rohi-connectivity-protosigned telemetry
rohi-time, rohi-time-ntpwall-clock time
rohi-identitydevice identity and signer
rohi-locationdevice location
rohi (tools/rohi)desktop client library and CLI: Desktop application
rohi-sdkumbrella crate: re-exports the crates above behind Cargo features (service, hal, net, esp, …); the firmware depends on it alone

The dependency rules and “where does new code go” are in the rohi-sdk rustdoc.