Skip to content

Installation

Splintertree is a Rust workspace targeting edition 2024 / resolver 3. The supported workflows are container builds via the unified Docker image and native cargo builds for fast iteration.

Toolchain

Tool Version
Rust stable, edition 2024 (resolver 3)
PostgreSQL 15+
NATS 2.10+
Redis 7+
Docker 24+ with Compose v2
Python 3.11+ (PyO3 runtime, embedded)

Workspace layout

The Git repository is still called rustcraft/, predating the project rebrand to Splintertree:

rustcraft/
├── splintertree-*/              # 16 Rust workspace crates
├── splintertree-web-api/        # axum REST backend
├── splintertree-web-frontend/   # Quasar / Vue 3 SPA
├── splintertree-launcher/       # Tauri 2 desktop launcher
├── sql/                         # auth.sql, characters.sql, world.sql.gz, migrations/
├── deploy/helm/splintertree/    # Helm chart for k3s / production
├── docs/                        # Engineering & design notes
├── website/                     # Public documentation site (this site)
└── mods/                        # Reference `.rcmod` source trees

Container build (development workflow)

docker build --target builder -t splintertree-builder:check .

The image bundles every workspace crate and is what CI uses for workspace-wide checks. Run the full stack locally with:

docker compose up

Compose is dev-only

Docker Compose is meant for local development and study. The officially supported deployment target is Kubernetes via the Helm chart — see Getting started › Deployment.

Native build

# whole workspace
cargo build

# a single crate
cargo build -p splintertree-world

# whole workspace tests
cargo test

# single-crate tests
cargo test -p splintertree-world

Lint & format

cargo fmt --all
cargo clippy --all

CI rejects pull requests that fail either of these.

Database setup

The sql/ folder holds canonical schemas:

  • auth.sql — accounts, realmlist, SRP6
  • characters.sql — characters, instance registry, transfer state
  • world.sql.gz — AzerothCore-parity content (creatures, quests, items, …)
  • migrations/ — incremental schema deltas applied by the orchestrator

The Compose stack creates and seeds the databases on first boot. For native runs, point your environment at a local PostgreSQL via .env (template at .env.example).

Helm / Kubernetes (officially supported)

The only officially supported deployment target is Kubernetes via deploy/helm/splintertree/. The chart targets k3s and managed Kubernetes alike — it provisions the unified service image as separate workloads per crate, the NATS cluster, and the PostgreSQL StatefulSet. See Getting started › Deployment for the rationale and full chart surface.