0.1.0-1-alpha.2
This commit is contained in:
97
docs/development/008-WASM_TAURI_POC.md
Normal file
97
docs/development/008-WASM_TAURI_POC.md
Normal file
@@ -0,0 +1,97 @@
|
||||
<!-- file: docs/development/008-WASM_TAURI_POC.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# POC WebAssembly embarqué dans Tauri
|
||||
|
||||
## Objectif
|
||||
|
||||
Le POC vérifie qu'une même crate de gameplay Rust peut fonctionner :
|
||||
|
||||
- dans le runner Desktop SDL3 natif ;
|
||||
- compilée en WebAssembly ;
|
||||
- dans une WebView Tauri locale ;
|
||||
- sans site distant ni serveur applicatif.
|
||||
|
||||
Le POC ne remplace pas le runner SDL3 natif.
|
||||
|
||||
## Découpage
|
||||
|
||||
```text
|
||||
game-reflex-poc
|
||||
|
|
||||
+--> game-reflex-poc-desktop --> engine-v1-sdl --> SDL3 natif
|
||||
|
|
||||
+--> game-reflex-poc-tauri --wasm32--> wasm-bindgen --> Canvas Web
|
||||
|
|
||||
+--natif--> Tauri WebView
|
||||
```
|
||||
|
||||
Le JavaScript ne contient aucune règle Reflex. Il traduit les événements pointeur vers l'adaptateur WASM et dessine la scène générique exposée par le moteur.
|
||||
|
||||
## Frontend local
|
||||
|
||||
Tauri agit comme hôte de fichiers Web statiques locaux. `frontendDist` pointe sur :
|
||||
|
||||
```text
|
||||
Tauri/game-reflex-poc/frontend/
|
||||
```
|
||||
|
||||
Aucun site, CDN, Vite ou gestionnaire de paquets JavaScript n'est requis par ce POC.
|
||||
|
||||
## Sécurité
|
||||
|
||||
La CSP reste locale. `wasm-unsafe-eval` est autorisé uniquement parce que la WebView charge du WebAssembly.
|
||||
|
||||
Aucun script distant n'est autorisé.
|
||||
|
||||
## Build WASM
|
||||
|
||||
Préparer une fois :
|
||||
|
||||
```bash
|
||||
rustup target add wasm32-unknown-unknown
|
||||
cargo install wasm-bindgen-cli --locked
|
||||
```
|
||||
|
||||
Puis :
|
||||
|
||||
```bash
|
||||
python3 scripts/build_reflex_tauri_wasm.py
|
||||
```
|
||||
|
||||
Les fichiers générés sont ignorés par Git.
|
||||
|
||||
## Prérequis Tauri Linux
|
||||
|
||||
Le développement Tauri v2 requiert les bibliothèques système WebKitGTK/GTK correspondantes.
|
||||
|
||||
Sur Debian, vérifier notamment la présence de `libwebkit2gtk-4.1-dev` et des autres prérequis documentés par Tauri avant la gate Tauri.
|
||||
|
||||
Installer une fois le CLI si nécessaire :
|
||||
|
||||
```bash
|
||||
cargo install tauri-cli --version "^2.0.0" --locked
|
||||
```
|
||||
|
||||
## Exécution
|
||||
|
||||
Après génération du WASM :
|
||||
|
||||
```bash
|
||||
cd crates/apps/game-reflex-poc-tauri
|
||||
cargo tauri dev
|
||||
```
|
||||
|
||||
Critères :
|
||||
|
||||
- une fenêtre locale 405 × 720 s'ouvre ;
|
||||
- le Canvas affiche le même fond et la même cible que Reflex SDL3 ;
|
||||
- cliquer sur la cible incrémente le score et déplace la cible ;
|
||||
- aucun site distant n'est requis ;
|
||||
- le runtime est identifiable comme `Desktop + Wasm + TauriWebView + KeyboardMouse`.
|
||||
|
||||
## Frontière services Web
|
||||
|
||||
Ce POC ne choisit aucune régie publicitaire.
|
||||
|
||||
Il valide seulement qu'une variante Tauri possède une WebView capable d'héberger une frontière Web distincte. Ads, rewarded ads, revive, analytics et autres services resteront derrière `engine-v1-platform-api` et feront l'objet de tranches dédiées.
|
||||
Reference in New Issue
Block a user