alp-core 0.1.6

Pure domain logic for the ALP SDK tooling: board.yaml model/validate, build-plan + system-manifest contracts, presets, and debug/doctor reports. Shared by the `alp` CLI.
Documentation

alp-core

crates.io docs.rs license

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

[dependencies]
alp-core = "0.1"

The full API reference is on docs.rs/alp-core.

Stability. alp-core is published primarily as the implementation crate for the alp CLI. It is pre-1.0 — the public API may change between minor versions. If you depend on it directly, pin a minor range.

License

Apache-2.0.