Grasm v1.0.0 Get started

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 the engine…
Output
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.