๐ฆ Crates โ
This section is an architecture map of the library crates used by Core modules and executable crates.
Compared with Modules, these crates define reusable contracts, data models, and helper layers. Stateful orchestration usually happens in module singletons (for example task/users/virtual_file_system), while crates provide the typed interfaces those modules and executables consume.
Architecture map โ
Foundation and cross-cutting โ
- ๐ฆ Shared: common low-level types (
shared::flags, units, HTTP/time helpers, UTF-8/slice utilities). - ๐ Synchronization: synchronization facade (
Arc+embassy_syncre-exports). - ๐ฏ Target: build-target introspection from Cargo environment.
- ๐ Internationalization: locale lookup +
translate!macro pipeline.
Storage and device contract stack โ
- ๐ File System: core path/metadata/device/file-system traits.
- ๐ Little FS: concrete
FileSystemOperationsbackend on top oflittlefs2-sys. - ๐ Device: typed control commands for device endpoints (currently hash commands).
- ๐๏ธ Peripherals: compact shared pin-state payload model.
Runtime-facing crates โ
- ๐ Executable: executable contract and launcher path (
GET_MAIN_FUNCTION,execute). - ๐ Authentication: persistent users/groups + password verification routines.
- โจ Bootsplash: startup animation crate integrated with graphics manager/LVGL.
- ๐งช Testing: host-oriented integration runtime assembly for tests.
Reading order (crates-first) โ
This order stays neutral and follows dependency direction from shared abstractions to runtime usage:
- ๐ฆ Shared
- ๐ Synchronization
- ๐ฏ Target
- ๐ Internationalization
- ๐ File System
- ๐ Little FS
- ๐ Device
- ๐๏ธ Peripherals
- ๐ Executable
- ๐ Authentication
- โจ Bootsplash
- ๐งช Testing
Contract vs implementation โ
- Contract: this index documents stable architecture boundaries and navigation order for crate-level contracts.
- Current implementation: the mapped crates correspond to the current Core workspace crate layout and dependency direction.