RocketStats is a Rust workspace for building a Rocket League overlay stack.
.
├── Cargo.toml
├── apps/
│ └── overlay/ # Tauri v2 desktop overlay
│ ├── src/ # TypeScript frontend (Vite)
│ └── src-tauri/ # Rust backend
└── crates/
└── rlapi/ # PsyNet protocol client
Ports the reverse-engineered rlapi Go project into Rust:
- Epic EOS device-code authentication
- PsyNet HTTP bootstrap and WebSocket RPC client
- Request signing and build ID decoding compatible with the upstream protocol
- Typed read-only endpoints for profiles, XP, playlists, population, skills, and match history
- Local protocol and RPC integration tests
Tauri v2 desktop overlay with a Rust backend and TypeScript frontend:
- Log parsing — extracts match events from Rocket League
Launch.log(matchmaking, server join, GUID, player IDs, match end) - Log redaction — strips sensitive tokens (AUTH_PASSWORD, epicuserid, JoinPassword, DSRToken, ConnectionID) before processing
- Match tracker — state machine that builds a
MatchSessionfrom log events (Idle → Matchmaking → Joining → InMatch → Ended) - Player enrichment — looks up detected players through PsyNet skill/profile endpoints with local caching
- SQLite storage — persists player cards (MMR, rank, division) across sessions
- Auth service — orchestrates Epic device login and PsyNet WebSocket connection
- Tauri bridge — exposes
get_overlay_stateandset_click_throughcommands with event-based state updates - Overlay UI — transparent borderless window rendering player cards and match status
Run the full verification suite from the repository root:
cargo fmt --check
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspaceFor the frontend:
cd apps/overlay
npm install
npm run buildLaunch the Tauri overlay in development mode (hot-reload Vite + Rust backend):
cd apps/overlay
npm run tauri:devFor a release build:
cd apps/overlay
npm run tauri:buildOn Linux, AppImage bundling may fail on recent distributions because the bundled
linuxdeploy tool cannot strip newer system libraries. Use the Linux packaging
script to build only .deb and .rpm bundles:
cd apps/overlay
npm run tauri:build:linuxThe workspace contains the PsyNet protocol client and a Tauri overlay MVP. The overlay backend provides log parsing, match tracking, player enrichment, and SQLite caching. Background task orchestration (spawning the log watcher, auth flow, and enrichment pipeline) and BakkesMod/injected overlay integration are still to be implemented.