Talk demo (RustLA, 2026-07-22): a toy password strength + breach checker with
a Rust core, consumed identically by a Tauri app and a clap CLI.
The frontend's TypeScript types are automatically generated from the Rust
types (via Specta / tauri-specta).
One shared Rust core... and the frontend types write themselves.
Flight Science is building a fully-integrated platform that replaces legacy tools to create a unified experience for airlines operations teams. Our first product is Flight Science DX, a flight monitoring, communication and optimization tool for dispatchers.
We are hiring! Flight Science is looking for exceptional front-end and back-end engineers who are interested in developing aviation software that will make a huge impact in the daily experience of keeping our skies safe. To learn more: https://www.flightscience.ai/company
crates/core/ pure logic + domain types. No I/O. specta+serde behind `bindings` feature.
crates/cli/ `argus` - the operator shell (clap). Consumes argus-core directly, no bindings.
crates/desktop/ the Tauri v2 client shell. #[tauri::command]s + tauri-specta export.
frontend/ SolidJS + Vite. Imports the generated src/bindings.ts.
xtask/ `cargo xtask <task>` - the only dev entrypoint.
fixtures/hibp/ small canned offline HIBP dataset (hibp-json `dist/` layout).
talk/ presenterm deck + speaker notes.
Two claims the demo proves:
- A, portable core: the same
argus-corecrate backs the CLI and the GUI. - B, generated boundary: the GUI's types come out of the Rust types. The CLI needs none, it is Rust.
- Bonus, sans-io: the breach check does no network/disk I/O in the core; each shell supplies the fetch (Online = HIBP API, Offline = the local dataset).
# Rust core + CLI (no GUI toolchain needed)
cargo test -p argus-core
cargo run -p argus -- analyze password
cargo run -p argus -- check password --source offline # small committed fixture
cargo run -p argus -- check password --source online # live HIBP
# offline against a full hibp-json dist (real corpus) instead of the fixture,
# works for the CLI and the desktop app:
ARGUS_HIBP_DIST=/path/to/hibp-json/dist cargo run -p argus -- check password --source offline
# GUI (needs Node + a webview; webkit2gtk on Linux)
cd frontend && npm install && cd ..
cargo xtask gen-bindings # regenerate frontend/src/bindings.ts
cargo xtask dev # cargo tauri dev
# everything
cargo xtask check # fmt + clippy + test + bindings-are-current
cargo xtask deck # present talk/deck.md (presenterm -x)Licensed under either of Apache License, Version 2.0 or MIT license at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.