Add: tauri frontend as bevy alternative
This commit is contained in:
61
docs/TAURI_FRONTEND_DESIGN.md
Normal file
61
docs/TAURI_FRONTEND_DESIGN.md
Normal file
@@ -0,0 +1,61 @@
|
||||
# Tauri 2.0 Frontend Design (Bevy Alternative)
|
||||
|
||||
Date: 2026-02-12
|
||||
|
||||
## Goal
|
||||
|
||||
Add a Tauri 2.0 frontend path as an alternative to Bevy while keeping the existing Bevy
|
||||
implementation and API behavior.
|
||||
|
||||
## New Components
|
||||
|
||||
- `crates/sprimo-runtime-core`
|
||||
- shared runtime bootstrap for config/snapshot/API/channel setup
|
||||
- shared command-to-snapshot/config application
|
||||
- `crates/sprimo-tauri`
|
||||
- Tauri 2.0 desktop shell
|
||||
- command consumer loop bound to runtime core
|
||||
- invoke command `current_state` for UI state
|
||||
- `frontend/tauri-ui`
|
||||
- React + Vite UI shell for status/control surface
|
||||
|
||||
## Selected Crates
|
||||
|
||||
Rust:
|
||||
|
||||
- `tauri`
|
||||
- `tauri-build`
|
||||
- `tauri-plugin-log`
|
||||
- `tauri-plugin-global-shortcut`
|
||||
- existing internal crates:
|
||||
- `sprimo-runtime-core`
|
||||
- `sprimo-platform`
|
||||
- `sprimo-protocol`
|
||||
|
||||
Frontend:
|
||||
|
||||
- `react`
|
||||
- `react-dom`
|
||||
- `vite`
|
||||
- `typescript`
|
||||
- `@tauri-apps/api`
|
||||
|
||||
## Current State
|
||||
|
||||
- Tauri binary crate is scaffolded and starts runtime core + API server.
|
||||
- Runtime core receives API commands and updates shared snapshot/config state.
|
||||
- Tauri backend exposes:
|
||||
- `current_state` command (structured snapshot DTO)
|
||||
- `load_active_sprite_pack` command (manifest + atlas as base64 data URL)
|
||||
- `runtime:snapshot` event after command application.
|
||||
- React/Vite frontend now renders sprite atlas frames with PixiJS and updates animation/scale
|
||||
from runtime snapshot events.
|
||||
- Bevy frontend remains intact.
|
||||
- Runtime QA workflow is defined in `docs/TAURI_RUNTIME_TESTING.md`.
|
||||
|
||||
## Remaining Work
|
||||
|
||||
1. Move Bevy runtime flow to consume `sprimo-runtime-core` as primary state authority.
|
||||
2. Add tray/menu parity and window behavior parity with Bevy path.
|
||||
3. Extend packaging scripts to include `sprimo-tauri` artifact path.
|
||||
4. Add frontend parity acceptance tests (Bevy vs Tauri state transitions).
|
||||
Reference in New Issue
Block a user