Cross-platform Tauri v2 desktop app that connects to Betfair Exchange APIs:
- Auth (Identity): credentials handled in Rust; session token stays in Rust
- JSON-RPC (Sports/Account/Heartbeat): UI calls Rust via Tauri
invoke() - Stream API: Rust maintains the TLS stream and forwards updates to the UI via Tauri events
Repo layout:
- Rust toolchain
- Node.js (for the UI)
Run the UI dev server, then run the desktop app in dev mode:
npm --prefix ui run dev
cargo tauri devBuild platform installers/bundles via the Tauri bundler:
cargo tauri buildThe UI production build is executed from build.rs during release builds (set TAURI_SKIP_UI_BUILD=1 to skip if ui/dist is already up to date).
Outputs are written under target/**/release/bundle/ (e.g. .dmg, .msi, .AppImage, .deb).
The Betfair AppKey is expected at build time:
BETFAIR_APP_KEY(set in CI via repository secrets)
Runtime settings are stored by the app; see the UI settings screen.
- CI runs on PRs and pushes to
main. - Releases are built and published when pushing a tag matching
v*.
Suggested release flow:
scripts/release.sh