Skip to main content

Tech Stack

Frontend — Rust + Bevy

TechnologyRoleRationale
RustPrimary languageType safety, performance, shared with backend
Bevy 0.15+Game engineECS maps naturally to zones/species/events; WASM target
bevy_ecs_tilemapTilemapsIndustry standard for top-down 2D in Bevy
bevy_asset_loaderAsset pipelineClean loading states, hot-reload support
bevy_ui / eguiUIegui for rapid prototyping; migrate to bevy_ui for polish
WASMWeb targetcargo build --target wasm32-unknown-unknown

Important: Always check crates.io/crates/bevy for the latest version before starting a new project. Bevy releases breaking changes frequently — pin the version and upgrade deliberately.

Backend — Rust + Axum (Phase 3+)

TechnologyRoleRationale
AxumHTTP + WebSocket serverAsync, composable, Tokio-native
TokioAsync runtimeStandard for Rust async
SQLx + PostgreSQLPrimary databaseCompile-time checked queries, async
RedisCache + pub/subSession cache; ecosystem event broadcasting
MinIOAsset storageSelf-hostable S3-compatible; sprites, AI variants
nginxReverse proxyTLS termination, routing

MVP Storage — SQLite (local)

For Phase 0–2 (offline-first):

  • SQLite via sqlx (sqlite feature)
  • Stores: player data, inventory, caught Faerals, Codex entries, ecosystem state
  • Migration path to PostgreSQL when Phase 3 online mode is introduced

Wiki

  • Docusaurus 3 in /wiki
  • Deployed on the developer's homelab (ZTNA/mTLS protected)
  • CI/CD: push to main → auto-deploy
  • Docs live in the same repo as code (/wiki/docs/)

Target platforms

PhasePlatform
MVPDesktop (Linux, Windows, macOS)
Phase 2+ WebAssembly (browser)
Phase 4+ Mobile (iOS, Android)
LaterConsoles (TBD)