Spanda

Installing Spanda

Spanda ships prebuilt installable packages for Linux, macOS, and Windows. You can also build from source.


Download the latest release from GitHub Releases.

Each release includes:

Artifact Platform
spanda-cli-installer.sh Linux and macOS (auto-detects arch)
spanda-cli-installer.ps1 Windows (PowerShell)
spanda-cli-x86_64-pc-windows-msvc.msi Windows installer
spanda-cli-*.tar.xz Linux/macOS archives (per architecture)
spanda-cli-*.zip Windows archive
spanda-cli.rb Homebrew formula (manual or tap install)

Release tags must match the workspace version in Cargo.toml (for example v0.1.0).

Linux and macOS — shell installer

curl --proto '=https' --tlsv1.2 -LsSf \
  https://github.com/Davalgi/Spanda/releases/download/v0.1.0/spanda-cli-installer.sh | sh

The installer places spanda in ~/.cargo/bin by default. Ensure that directory is on your PATH.

macOS — Homebrew

Download spanda-cli.rb from the release and install locally:

brew install ./spanda-cli.rb

Or extract a platform archive and copy spanda to a directory on your PATH.

Windows — MSI installer

Download spanda-cli-x86_64-pc-windows-msvc.msi from the release and run the installer.

Windows — PowerShell installer

irm https://github.com/Davalgi/Spanda/releases/download/v0.1.0/spanda-cli-installer.ps1 | iex

Manual archive install

  1. Download the archive for your platform (tar.xz on Linux/macOS, .zip on Windows).
  2. Extract the archive.
  3. Move spanda (or spanda.exe) to a directory on your PATH.

Supported targets:

Verify:

spanda --version
spanda check examples/hello_world.sd
spanda control-center --help   # confirms enterprise-ops CLI is present

If control-center is missing or api-key generate fails with Unknown argument: generate, your PATH binary is likely stale — see troubleshooting.md.


Quick install script

From a clone:

./scripts/install.sh

This runs cargo install --path crates/spanda-cli --locked and installs the spanda binary (crate name spanda) to ~/.cargo/bin.


Build from source

For contributors or unreleased builds:

Prerequisites

Steps

git clone https://github.com/Davalgi/Spanda.git
cd Spanda
npm install
npm run build:rust    # → target/release/spanda
npm test

Add target/release to your PATH, or run via npm run spanda:native -- <command>.


Package maintainers

Releases are built with cargo-dist. Push a semver tag matching Cargo.toml (for example v0.1.0) to trigger .github/workflows/release.yml.

Local packaging:

./scripts/package-release.sh v0.1.0        # current host only
./scripts/package-release.sh v0.1.0 --all  # all targets (needs cross tools below)

--all cross-compiles Linux and Windows artifacts from your machine and requires:

cargo install --locked cargo-zigbuild cargo-xwin
brew install zig   # or: python3 -m pip install ziglang
rustup target add aarch64-apple-darwin aarch64-unknown-linux-gnu \
  x86_64-apple-darwin x86_64-unknown-linux-gnu x86_64-pc-windows-msvc

Or install automatically:

./scripts/package-release.sh v0.1.0 --all --install-cross

For official releases, prefer pushing a semver tag and letting GitHub Actions build every platform natively.

Regenerate dist CI after config changes:

dist generate

Configuration lives in dist-workspace.toml.