Files
games/docs/development/009-SNAKE_WEB_WASM_BUILD.md
2026-09-20 13:14:40 +02:00

1.9 KiB

Build WASM du POC Snake Web direct

Objectif

game-snake-poc-wasm fournit le bridge Rust/WASM du premier host navigateur direct. Cette tranche valide uniquement la production du module WebAssembly et de ses bindings JavaScript ; le frontend Vite/TypeScript et le shell Bootstrap 5 appartiennent à 0-pre.4.

Prérequis

À installer une fois si nécessaire :

rustup target add wasm32-unknown-unknown
cargo install wasm-bindgen-cli --locked

Le CLI wasm-bindgen utilisé doit rester compatible avec la version de la crate wasm-bindgen résolue par Cargo.

Build Rust

Depuis la racine du dépôt :

cargo build -p game-snake-poc-wasm --target wasm32-unknown-unknown

La configuration Cargo racine place l'artefact sous :

../builds/sasedev-games/target/wasm32-unknown-unknown/debug/game_snake_poc_wasm.wasm

Génération des bindings navigateur

Créer les bindings avec l'outil natif, sans orchestrateur Python :

wasm-bindgen \
  ../builds/sasedev-games/target/wasm32-unknown-unknown/debug/game_snake_poc_wasm.wasm \
  --target web \
  --out-dir ../builds/sasedev-games/game-snake-poc-web/wasm \
  --out-name game_snake_poc_wasm

Les fichiers générés restent intégralement hors du dépôt sous ../builds/sasedev-games/. Ils ne sont ni commités ni copiés dans crates/ par cette tranche.

Frontière avec 0-pre.4

0-pre.3 s'arrête au module WASM et à ses bindings générés. Le frontend introduit en 0-pre.4 sous Web/game-snake-poc/ les consomme ensuite via Vite/TypeScript ; il porte le document HTML Bootstrap 5, le Canvas, le clavier et les contrôles tactiles.

Le frontend reste responsable de la cadence d'appel à tick() et de la traduction des événements navigateur vers left(), right(), up() et down().