Development Setup
Required Tools
Section titled “Required Tools”Tools are managed with mise.
| Tool | Version | Purpose |
|---|---|---|
| Node.js | 22 | Frontend / docs build |
| pnpm | 11.x | JS dependency management |
| Rust | 1.97 | Tauri backend |
| Java | 21 | Android build |
| Perl | - | Build scripts |
If mise itself is not installed yet, follow the mise getting started guide. Then run clone through dependency installation.
git clone https://github.com/hu-ja-ja/WSA_RPC_Bridge.gitmise trust # First time onlymise install # Installs Node / pnpm / Rust / Perl / Java (pinned by mise.lock)mise run deps # Installs JS dependenciesAfter changing tool versions ([tools] in mise.toml), run mise lock to update mise.lock (CI installs locked, so a stale lock fails).
Starting the Dev Server
Section titled “Starting the Dev Server”mise run dev # Tauri + Vite dev (desktop)On startup, build.beforeDevCommand (pnpm generate-licenses && pnpm dev) runs first: license generation → Vite dev server (http://localhost:5173).
First Build
Section titled “First Build”Desktop
Section titled “Desktop”mise run build # Release build (MSI + NSIS on Windows)Artifacts go to src-tauri/target/release/bundle/msi/. For a quick check, pnpm tauri build --no-bundle is enough. If you are not logged in to Infisical, run pnpm tauri ... directly (see the Command Reference).
Android
Section titled “Android”The Android SDK / NDK resolve from SDK_ROOT / NDK_VERSION in mise.toml. If missing, install them via Android Studio or the cmdline-tools (sdkmanager --licenses, then install the NDK).
mise run pipeline:codegen # First time only (generates Kotlin code, gradle config, verifier AAR)mise tauri android build --apk -t aarch64 # Build the APKgen/androiditself is tracked in git, soandroid initis not needed.pipeline:codegenfills in what a fresh checkout lacks (generated Kotlin undergenerated/,tauri.*.gradle*,libs/rustls-platform-verifier.aar; see Pipeline).- Dev builds work without
discord_partner_sdk.aar, which cannot be committed for licensing reasons (optional dependency, invoked via reflection). See the release for release-time retrieval. - If Gradle stops responding, run
gradlew.batdirectly insrc-tauri/gen/android.
Project Layout
Section titled “Project Layout”├─ src/ # Frontend (SolidJS + Kobalte)├─ src-tauri/ # Rust / Tauri v2 backend│ └─ gen/android/ # Android project (Kotlin)├─ scripts/ # Build scripts├─ site/ # Documentation site (Astro Starlight)├─ img/ # Screenshots└─ mise.toml # Task definitionsCommon Commands
Section titled “Common Commands”| Purpose | Command |
|---|---|
| Install dependencies | mise run deps |
| Desktop dev | mise run dev |
| Release build | mise run build |
| Lint | mise run lint |
| Rust tests | mise run test |
| Android tests | mise run android-test |
| Docs dev | mise run docs-dev |
| Docs build | mise run docs-build |
See the Command Reference for all commands and their arguments.