Skip to content

Installation

Kairos Substrate is distributed as source code. You build the specific target you need from the kairos-engine workspace.

ToolVersionPurpose
Rust1.94+ (edition 2024)Core toolchain — pinned via rust-toolchain.toml
wasm-packLatestWASM builds only
maturinLatestPython wheel builds only
PlatformArchitectureCLINative libPythonWASM
Linuxx86_64YesYesYesYes
Linuxaarch64YesYesYesYes
macOSx86_64YesYesYesYes
macOSaarch64 (Apple Silicon)YesYesYesYes
Windowsx86_64YesYesYesYes

WASM builds are platform-independent — wasm32-unknown-unknown produces identical output on any host.

Two release profiles exist because WASM and native targets have opposing optimization goals:

Profileopt-levelUse case
releasez (size)WASM only
release-native3 (speed)CLI, FFI, Python
Terminal window
# Standard CLI (speed-optimized)
cargo build -p kairos-cli --profile release-native
# CLI with the observe TUI dashboard
cargo build -p kairos-cli --features tui --profile release-native

The built binary is at target/release-native/kairos.

Terminal window
# Shared + static library
cargo build -p kairos-ffi --profile release-native
# With fly-by-wire session support
cargo build -p kairos-ffi --profile release-native --features fly-by-wire
# With dynamic artifact loading (research mode)
cargo build -p kairos-ffi --profile release-native --features fly-by-wire,dynamic-config

The generated C header is kairos_engine.h. The shared library is libkairos_engine.so (Linux), libkairos_engine.dylib (macOS), or kairos_engine.dll (Windows).

Terminal window
cd crates/kairos-pylib
maturin build --release

The wheel is placed in target/wheels/.

Terminal window
# Standard WASM (size-optimized)
wasm-pack build crates/kairos-wasm --release
# WASM with fly-by-wire session bindings
wasm-pack build crates/kairos-wasm --release --features fly-by-wire
Terminal window
# All workspace tests
cargo test --workspace
# Tests with fly-by-wire features
cargo test --workspace --features fly-by-wire
# HITL regression without license feature
cargo test -p kairos-rosetta-inbound --test hitl_no_license_test \
--no-default-features --features fly-by-wire

After building, you need to activate a license before running evaluations.