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)¶
The image bundles every workspace crate and is what CI uses for workspace-wide checks. Run the full stack locally with:
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¶
CI rejects pull requests that fail either of these.
Database setup¶
The sql/ folder holds canonical schemas:
auth.sql— accounts, realmlist, SRP6characters.sql— characters, instance registry, transfer stateworld.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.