Start
Playground
Grasm compiles to wasm32, so the language runs in a
browser with no server behind it.
The engine below is the reference interpreter — the same one
grasm run uses — built for wasm32 and held to the other
engines by scripts/wasmtest.sh. Your program never leaves this tab.
The examples are the files in examples/, read when this page was
generated.
Loading…
Running it locally
The wasm build and a host page live in the repository. Serve the directory and open it:
cargo build --release --target wasm32-unknown-unknown -p grasm_wasm
cp target/wasm32-unknown-unknown/release/grasm_wasm.wasm ProjectGold/web/grasm.wasm
python3 -m http.server -d ProjectGold/web
That page runs the corpus: pick a program, and it executes in the tab.
10 of the programs under ProjectGold/ are browser applications built this way, and they are the ones with a page beside them: a fullstack counter, user registration, a voting app, a blog dashboard, a markdown editor, an upload gallery, a chat router, a collaborative todo list, a SPA router and realtime analytics.
What the browser build can and cannot do
415 programs produce identical output in wasm, out of the 511 the corpus held then, against 520 today, and both figures below come from a run on 15 October 2026. The other 96 are skipped for a reason the host cannot supply, and each names it: a filesystem, a socket, a process, threads, or a stack deep enough for the recursion limit the specification promises.
In this page the missing facilities refuse the same way: a program that
opens a file or a socket gets the ordinary error back, and par_map
runs on one core with the same answer.