Live Interpreter
← iolanguage.org

The Io virtual machine compiled to WebAssembly, running entirely in your browser — nothing is sent to a server. Type an expression and press Enter. State persists between evaluations, and the Io↔JavaScript bridge gives your code access to the page: try the DOM example below.

Loading the Io VM (~1.4 MB of WebAssembly)…
Run Clear Enter to run · Shift+Enter for a new line · ↑/↓ history
Examples hello world lists prototypes operators JS math async callback DOM button

This page runs the real Io VM — the same C source that runs under wasmtime — compiled to a WebAssembly reactor module with wasi-sdk. Instead of running main() and exiting, the module exports functions that JavaScript calls for each evaluation, so the VM (and everything you define) stays alive between inputs.

VM
Io (stackless evaluator, WASM/WASI target)
Download size
~1.4 MB (one .wasm file)
Runs on
Any modern browser; no WebGPU or special hardware needed
Server calls
None — evaluation is 100% local
License
BSD

Io output (print, println, write) is captured through the VM's print callback and shown in the transcript; if an expression prints nothing, its return value is shown as ==> value. The JS object bridges into JavaScript both ways: Io can call JS functions and read or set properties, JS callbacks can invoke Io blocks, and JS Promises tie into Io's coroutines so awaiting code reads like straight-line code.

Read more in the WASM technical notes or browse the browser bridge source on GitHub.