Skip to content

Launcher

The Splintertree launcher is a Tauri 2 shell that hosts the same Quasar / Vue 3 SPA the public web portal uses, restricted to a launcher-specific layout. The native side handles Wow.exe spawning, the client install / update pipeline, settings persistence under ~/.config/splintertree/launcher.toml, and per-game addon management.

The launcher is the user's primary entry point: account management, friends & chat, game database, optional addons, and (when enabled) the shop all live in the same window so a player rarely needs the browser portal at all.

Why Tauri

Tauri keeps the install footprint small (~30 MB binary) and reuses every line of UI code that ships in the browser portal. The native commands surface as #[tauri::command] Rust functions in splintertree-launcher/src/commands.rs; the Vue side calls them via invoke('command_name', { … }). The split lets designers iterate on the SPA without touching the binary, while the binary owns the platform integrations (Wine spawn, file-system writes, manifest verification, patch sync).

Wire format with the server

  • Web-facing flows talk to splintertree-web-api over plain HTTPS — login, account, news, shop, social, addons.
  • The client install/update pipeline pulls from the same web-api but with range-resumable HTTP GETs so a 15-20 GB tree resumes from where it died.
  • Realmlist + auth handshake is unchanged AzerothCore SRP6 wire format, served by splintertree-auth on TCP port 3724. The launcher writes realmlist.wtf (root + Data/ + every locale) before spawning Wow.exe so the in-game login screen connects to the right host.