Documentation

Read the code's own words.

Spectra's documentation lives beside its source, so it changes in the same commit as the behaviour it describes. Start with a build, then read the design documents in the repository.

Build it

A Rust toolchain is all the CLI needs; the iOS app also needs Xcode.

01 · CLONE

Get the source

rust-toolchain.toml pins the toolchain, so cargo fetches the right one on first use.

$ git clone https://github.com/lacklusteradmin/spectra.git
02 · CLI

Run the command line

The CLI is the front end with no platform under it: the same Rust core as the app, in a terminal.

$ cargo run -p spectra_cli -- --help
03 · IOS

Build the iPhone app

Open the project and build. A build phase compiles the Rust core and generates the Swift bindings for you.

$ open swift/Spectra.xcodeproj

Design documents

Each opens on GitHub.

Verification

make verify runs the four gates a change must pass. CI runs all but the iOS tests, which need Xcode and a simulator.

TargetWhat it runs
make lintrustfmt and clippy at -D warnings, plus scans that refuse unused exports, unwritten FFI fields and hard-coded chain names in the app
make testcargo test --workspace — the core's rules, tested without a platform
make test-cliThe real spectra binary end to end, offline, in a throwaway data directory
make test-iosxcodebuild test on an iPhone simulator
make check-uiDesign-token and icon-normalization checks, run by hand