Rust workspace members under crates/. The lean-core refactor (Phases 1–17) split the former monolithic spanda-core into focused libraries. spanda-core remains the stable public facade for external embedders; first-party binaries and bindings import workspace crates directly.
spanda-cli / spanda-node / spanda-wasm / spanda-dap / spanda-llvm
→ spanda-driver, spanda-hardware, … (no direct spanda-core dep)
spanda-core
→ full workspace graph (re-exports + thin shims)
Only spanda-core lists spanda-core as a dependency target. Everyone else depends on the crate that owns the behavior.
| Layer | Crates | Role |
|---|---|---|
| Apps & bindings | spanda-cli, spanda-node, spanda-wasm, spanda-dap |
CLI, N-API, WASM, DAP server |
| Public facade | spanda-core |
Stable spanda_core:: API — re-exports + compatibility shims |
| Compile & run | spanda-driver, spanda-lexer, spanda-parser, spanda-typecheck, spanda-sir, spanda-error |
Lex → parse → type-check → SIR → run |
| Interpreter | spanda-interpreter, spanda-runtime-host |
Tree-walking runtime; RuntimeHost wiring |
| Runtime kernel | spanda-runtime, spanda-comm, spanda-safety, spanda-hal, spanda-concurrency, spanda-debug, spanda-ai |
Scheduler, comm bus, safety, HAL, concurrency, debugger, AI registry |
| Hardware & verify | spanda-hardware, spanda-certify, spanda-capability, spanda-readiness |
Profile catalog; certification proofs; capability/traceability/health analysis; operational readiness. Public verify_compatibility API: spanda-core::hardware_verify |
| Fleet & OTA | spanda-fleet, spanda-ota, spanda-deploy-http |
Fleet orchestration, rollout agents, HTTP deploy |
| Connectivity | spanda-connectivity, spanda-connectivity-runtime |
Connectivity catalogs; HardwareProfile foundation types; runtime validation |
| Hardware profiles | spanda-hardware |
Builtin profile catalog (re-exports connectivity types) |
| Transport | spanda-transport, spanda-transport-routing, spanda-transport-mqtt, spanda-transport-ros2, spanda-transport-dds, spanda-transport-websocket |
Adapters, RoutingCommBus, live bridges |
| Providers & packages | spanda-providers, spanda-package, spanda-modules, spanda-lib-registry |
Official package bootstrap, spanda.toml, module loader |
| Tooling | spanda-format, spanda-lint, spanda-codegen, spanda-docs |
fmt, lint, codegen metadata, doc generators |
| FFI & bridge | spanda-bridge, spanda-ffi, spanda-regex-lang |
Python/C++ subprocess bridges, FFI registry, regex AST |
| Codegen (experimental) | spanda-llvm, spanda-rt |
SIR → LLVM IR → native binary |
| Shared front-end | spanda-ast |
AST nodes, foundations, comm declarations |
| Security & audit | spanda-security, spanda-audit |
Capabilities, crypto, audit records |
Optional (not in default workspace build): spanda-ros2-rclrs-native — in-process ROS 2 cdylib.