Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Docs

Installation

There are no prebuilt binaries or published crates yet (the first release is pending; see ADR-0016); the supported way to run Thadam today is to build from source.

Supported platforms

  • Linux x86_64 and Linux ARM64 (aarch64) are the only durability targets. Production deployments run here.
  • macOS builds work for development only. Durability claims do not cover macOS: fsync semantics differ and the WAL format is validated on Linux reference hardware.
  • The supported storage baseline is industrial SSD or eMMC that honors flush. SD cards are not a supported target for durability claims.
  • Target resource envelope: 1–4 CPU cores, 256 MB–2 GB RAM depending on workload, local SSD.

The minimum supported Rust version (MSRV) is 1.89; the repository pins a newer stable toolchain for reproducible builds (see below).

Build from source

1. Install Rust

The repository pins the exact toolchain in rust-toolchain.toml (channel 1.99.0, with rustfmt and clippy and the two Linux cross targets). With rustup installed, cloning is enough — rustup downloads the pinned toolchain the first time you build:

git clone https://github.com/Dineshkarthik/thadam.git
cd thadam
rustup show        # installs the pinned toolchain if needed

2. Build the CLI

cargo build --release -p thadam

The binary is target/release/thadam. Every crate builds with #![forbid(unsafe_code)]; filesystem syscalls go through rustix’s safe API.

3. Checking your build

$ thadam version
thadam 0.1.0-beta.1
config version: 1
config hash version: 1

The version line reports the protocol versions the binary understands: the configuration format version (version: 1 in every config file) and the config-hash algorithm version. Upgrade incompatibilities are refused with exit code 3 rather than guessed; see Crash recovery.

Optional: lint and test

The contributor checks mirror CI:

cargo fmt --check
cargo clippy --workspace --exclude thadam-python --all-targets -- -D warnings
cargo nextest run --workspace --exclude thadam-python
scripts/check-deps.sh
cargo deny check

Container runtime (for demos and tests)

The first pipeline and the integration tests use Docker (or a compatible runtime) for an MQTT broker. Any OCI runtime works; the examples use eclipse-mosquitto:2 images.

Next

Continue to Your first pipeline.