Skip to content

Development Setup

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.git
mise trust # First time only
mise install # Installs Node / pnpm / Rust / Perl / Java (pinned by mise.lock)
mise run deps # Installs JS dependencies

After changing tool versions ([tools] in mise.toml), run mise lock to update mise.lock (CI installs locked, so a stale lock fails).

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).

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).

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 APK
  • gen/android itself is tracked in git, so android init is not needed. pipeline:codegen fills in what a fresh checkout lacks (generated Kotlin under generated/, 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.bat directly in src-tauri/gen/android.
├─ 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 definitions
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.