Skip to content

22 Getting Started and Developer Guide

Irshad Ali edited this page Sep 3, 2026 · 1 revision

22 — Developer & Getting Started Guide

Target Audience: Core Contributors, Integration Engineers, Application Developers
Repository: github.com/irshadali5/siar


1. Prerequisites & Environment Setup

SIAR is developed in modern Rust (2021 Edition, pinned to rust-version = "1.91").

Option A: Hermetic Nix Flake (Recommended)

SIAR includes a hermetic Nix environment (flake.nix, shell.nix) providing compiler toolchains and all native GUI/audio libraries (GTK3, WebKit2GTK, ALSA, OpenSSL, CMake):

# Enter the fully provisioned dev environment
nix develop

# Or build binaries directly
nix build .#siar-cli
nix build .#siar-desktop
nix build .#siar-emergency-node

# Run Nix check suite
nix flake check

Option B: Manual Toolchain Setup

# 1. Install Rust via rustup (Rust 1.91.0 or newer required)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup update stable
rustup component add clippy rustfmt

# 2. Clone the repository
git clone https://github.com/irshadali5/siar.git
cd siar

2. Compiling the Workspace

The workspace contains 33 crates and 4 applications configured under a single root Cargo.toml:

# Check compilation across all crates, targets, and tests
cargo check --workspace --tests

# Build optimized release binaries
cargo build --release --workspace

# Run complete automated test suite
cargo test --workspace

# Run multi-node end-to-end integration test
cargo test -p siar-messaging --test end_to_end

3. Running Workspace Applications

1. Desktop Application (Dioxus 0.7 GUI)

# Launch native desktop interface
cargo run --bin siar-desktop

2. Emergency Mesh Node Daemon

# Run headless background repeater daemon
cargo run --bin siar-emergency-node

3. Command-Line Interface (Interactive Terminal Messenger)

# Launch interactive CLI node
cargo run --bin siar-cli

4. Android Build & Testing

To compile the Android native library across ABIs and assemble the APK:

# Run automated multi-ABI build script
cd apps/android
./build-native.sh

# Assemble Android APK via Gradle
./gradlew assembleDebug

5. Code Quality & Formatting Standards

Before submitting pull requests, verify adherence to codebase standards:

# Run clippy lints
cargo clippy --workspace --all-targets -- -D warnings

# Check code formatting
cargo fmt --all -- --check

# Check dependency licenses and vulnerabilities
cargo deny check

Clone this wiki locally