Getting Started
This guide takes a clean checkout to a checked, built, and executed Strata program.
Prerequisites
Install stable Rust 1.85 or newer with Cargo. The workspace uses Rust Edition 2024. Standard repository gates select stable explicitly; nightly is reserved for fuzz and Miri recipes that opt into it per command.
Useful local tools:
rustup toolchain install stable --profile minimal --component rustfmt,clippy
cargo +stable install just --version 1.50.0 --locked
cargo +stable install mdbook --version 0.5.2 --locked
The 1.50.0 value above is the pinned just command runner version, not the
Rust compiler version.
The standard just quality gate runs documentation and metadata checks on every
local platform. Install jq, xmllint, and mdbook before using that bundle.
Ubuntu-based environments can install the metadata tools with:
sudo apt-get install jq libxml2-utils
macOS systems with Homebrew can install the metadata tools with:
brew install jq libxml2
Windows systems should install jq and an xmllint provider such as libxml2
with their package manager, or run the full just quality bundle in a WSL
Ubuntu environment. Confirm the tools are on PATH with jq --version,
xmllint --version, and mdbook --version.
Do not set a repository-wide nightly Rust override. Use just install-fuzz-tools
and just install-miri-tools only when running the nightly fuzz or Miri gates.
Build The Binaries
From the repository root:
cargo build
This builds the Strata CLI and Mantle runtime CLI. The executable filenames are platform-specific, so the commands below use Cargo to run the right binary on the local platform.
Check A Strata Program
strata check parses and semantically checks source without writing an
artifact.
cargo run -p strata --bin strata -- check examples/hello.str
Expected result:
strata: checked examples/hello.str (module hello, entry Main)
Build A Mantle Artifact
strata build checks the source and writes a Mantle Target Artifact under
target/strata/ by default.
cargo run -p strata --bin strata -- build examples/hello.str
Expected result:
strata: built examples/hello.str -> target/strata/hello.mta
Run The Program
Mantle admits and executes the generated artifact:
cargo run -p mantle-runtime --bin mantle -- run target/strata/hello.mta
Expected output includes:
mantle: loaded target/strata/hello.mta
mantle: spawned Main pid=1
mantle: delivered Start to Main
hello from Strata
mantle: stopped Main normally
mantle: trace target/strata/hello.observability.jsonl
The trace path is important. It records what Mantle actually admitted and executed.
Run The Standard Gate
After editing source, examples, runtime behavior, artifacts, or docs, use the central automation:
just quality
For the source-to-runtime acceptance examples only:
just source-to-runtime-gates
For the docs only:
just docs
What To Read Next
Read Language Concepts for the core ideas, then Tutorial: Hello for a guided walkthrough of the smallest accepted program.