initial commit
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
---
|
||||
epic: 9
|
||||
story: 9.1
|
||||
title: "WASM Engine Integration"
|
||||
status: draft
|
||||
---
|
||||
|
||||
## Epic 9 — Web App (React + WASM)
|
||||
**Goal:** Zero-install web experience with real-time collaboration.
|
||||
|
||||
### Story 9.1: WASM Engine Integration
|
||||
|
||||
As a web user,
|
||||
I want the CalcPad engine running natively in my browser via WebAssembly,
|
||||
So that I get full calculation fidelity without installing anything.
|
||||
|
||||
**Acceptance Criteria:**
|
||||
|
||||
**Given** the calcpad-engine Rust crate is configured with wasm-pack targets
|
||||
**When** the WASM module is compiled with `wasm-pack build --target web`
|
||||
**Then** a valid `.wasm` binary and JS glue code are produced
|
||||
**And** the gzipped WASM bundle is less than 500KB
|
||||
|
||||
**Given** the web app is loaded in a browser
|
||||
**When** the WASM engine is initialized
|
||||
**Then** it is loaded inside a dedicated Web Worker thread
|
||||
**And** the main UI thread remains unblocked during computation
|
||||
|
||||
**Given** the WASM engine is running in a Web Worker
|
||||
**When** the UI sends an evaluation request
|
||||
**Then** communication occurs via `postMessage` serialization
|
||||
**And** the worker returns the computed result back to the main thread via `postMessage`
|
||||
|
||||
**Given** the WASM engine is initialized in the worker
|
||||
**When** a user types a valid CalcPad expression
|
||||
**Then** the engine evaluates it with identical results to the native Rust engine
|
||||
**And** all supported operations (arithmetic, units, conversions, variables, functions) produce matching output
|
||||
Reference in New Issue
Block a user