Overview
- Orbitron is organised as a Rust Cargo workspace where each crate owns a distinct layer: data backbone, query language, GPU renderer, services, UI shells, automation CLIs, and an optional Python bridge.
- The user-facing binaries (
orbitron,orbitron-viewer) are thin entrypoints over the sharedcore/*crates. The terminal UI is not a separate binary — it is folded intoorbitronasorbitron view <file> --tui(automation/tuiis a library the CLI depends on via itstuifeature, on by default).orbitron-viewer(ui/shell/src/bin/orbitron-viewer.rs) is the desktop GUI, composing the same services with an egui/WGPU frontend; it is whatcargo bundleships as Orbitron Viewer.app. - Public-facing library crates deny missing documentation locally. The central lint script denies warnings,
unwrap/expect, and unsafe code across production targets; audited FFI and OS-handle boundaries use narrow local allowances withSAFETYcomments. - Reusable libraries use typed errors when callers need to distinguish failure modes. CLI, UI, and orchestration boundaries may use
anyhowto add context. - Prefer fallible parsing with
Result/Optionin production code: avoidunwrap/expectoutside tests, log recoverable parser failures withtracing::warn, and surface actionableIoPipelineError::ParseErrormessages for malformed inputs.
Documentation layout
This Developer Guide is the authoritative architectural reference for contributors. For end-user workflows (installation, GUI usage, CLI commands), refer to the companion User Guide (published at https://orbitron.reackt.dev/user-guide/).