Toolchain & Project Layout
How Aura projects are structured and how the compiler toolchain fits together.
Workspace overview
Aura is a Rust workspace composed of multiple crates that together form the language and its tooling:
- Compiler CLI:
aura(build/run/pkg) - Parser:
aura-lex,aura-parse,aura-ast - Semantic checker:
aura-core - Verifier:
aura-verify(Z3-backed) - Plugin system:
aura-nexus+ plugins likeaura-plugin-ai,aura-plugin-iot - Interpreter:
aura-interpret(AVM) - Language Server:
aura-lsp - VS Code extension: Aura Sentinel (
editors/vscode)
Build modes and features
Aura uses Cargo features to enable heavier components:
z3: enables verification using Z3 (hard safety gate)llvm: enables LLVM backend (when present)
Common patterns:
SH
# Verify + build (no LLVM needed)
cargo run -p aura --features z3 -- build path/to/file.aura --mode avm --backend c
# Run (when configured)
cargo run -p aura --features z3 -- run path/to/file.aura
Project configuration: aura.toml
Aura looks for an aura.toml by searching upward from the source file directory.
Typical sections:
project: human-readable project metadataplugins: Nexus plugin enablement (and trust gating)hardware: IoT register manifest (used byaura-iot)bridge/linking: native integration via the Universal Bridge
Example plugin enablement:
TOML
plugins = [
{ name = "aura-iot", trusted = true },
{ name = "aura-ai", trusted = true },
]
Z3 installation notes
Verification requires Z3 to be available to the verifier (the exact method depends on your OS/toolchain). If Z3 is missing or disabled, Aura can still type-check and run in development mode, but verification-backed features won’t be available.