Spanda

Spanda workspace crates

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.

Dependency rule

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 map

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.