Shipping one Rust CLI to nine platform targets
How Authdog packages its Rust terminal application for Linux, macOS, and Windows with checksums and a small installer service.
Authdog Engineering
A native terminal application feels simple after installation. Producing the right executable for each machine is the harder part.
Authdog CLI is written in Rust and its beta release publishes archives for nine operating-system and architecture targets.
Cover common developer machines
The release matrix includes:
- Linux x86_64, aarch64, i686, and armv7
- Linux musl x86_64 and aarch64
- macOS Intel and Apple Silicon
- Windows x64
GNU-linked Linux builds cover common distributions. Musl builds provide a more portable option for supported x64 and arm64 systems.
Each archive is built in CI and published with a SHA-256 manifest. The manifest gives installers and users a stable integrity value for every release artifact.
Keep installation small
The install endpoint detects operating system and architecture, resolves the matching GitHub release asset, downloads it, and places authdog-cli in the selected directory.
Developers can control resolution with environment variables:
AUTHDOG_CLI_VERSION=0.1.0-beta.1 \
INSTALL_DIR="$HOME/.local/bin" \
curl https://cli.auth.dog/install -fsS | bashSupported Linux users can request musl:
AUTHDOG_CLI_USE_MUSL=1 \
curl https://cli.auth.dog/install -fsS | bashPowerShell users install through the corresponding Windows script:
iwr -useb https://cli.auth.dog/install.ps1 | iexTest the core continuously
Normal CI checks formatting, runs Clippy with warnings denied, builds, and executes unit tests on Linux and macOS. A weekly RustSec audit checks dependency advisories.
The current test suite covers parsing and rendering for login, organizations, tenants, projects, environments, identity information, and persisted sessions.
Know what the matrix does not prove
Packaging an executable is not the same as validating every end-to-end flow. The beta does not yet have live integration coverage for browser OAuth and API navigation, and Windows is packaged without the same regular build-and-test matrix used for Linux and macOS.
Release engineering is strongest when its guarantees are precise. Authdog ships broad binary coverage, checksums, static analysis, unit tests, and dependency auditing today. Cross-platform end-to-end verification remains work for a later release.