alp-core
Pure, I/O-free domain logic for the ALP SDK
embedded toolchain — the shared engine behind the
alp CLI.
This crate is the Rust home of the board.yaml model, parsing, and validation, plus the
build-plan / system-manifest contracts, the SoM/SKU catalogue, and the debug/doctor
reports. It contains no terminal, filesystem-walking, or process logic — only
deterministic, serde-based transforms — so the same logic can be reused by the CLI today
and bridged to the TypeScript extension/LSP (via napi-rs or WASM) later.
What's inside
| Module | Responsibility |
|---|---|
model |
The board.yaml data model + normalize_board_model. |
validate |
Schema + semantic validation; outcome classification. |
loader |
Generation-target planning (Zephyr conf / DTS overlay / CMake args / Yocto conf). |
build_plan |
Parse + summarize the SDK's build-plan contract. |
system_manifest |
The post-build system-manifest v1 contract (per-core slices, ipc, helper MCUs). |
build_readiness |
Per-OS build-toolchain readiness reports. |
presets, sdk_catalogue |
SoM/SKU catalogue, chip/board presets, topology. |
project |
Workspace / project / board.yaml resolution. |
sdk |
SDK release listing + active-SDK resolution + readiness. |
debug, debug_launch |
Debug-doctor reports + launch.json drafting. |
diff, preview |
Model-vs-normalized diff; effective-config preview. |
wizard |
Project / module scaffolding plans. |
clock |
Deterministic ISO-8601 UTC timestamps (SOURCE_DATE_EPOCH-aware). |
Usage
[]
= "0.1"
The full API reference is on docs.rs/alp-core.
Stability.
alp-coreis published primarily as the implementation crate for thealpCLI. It is pre-1.0 — the public API may change between minor versions. If you depend on it directly, pin a minor range.