A small, prototype-based programming language — now targeting WASM/WASI.
Io is a dynamic, prototype-based language built on a few simple ideas taken from Smalltalk (all values are objects), Self (prototypes, not classes), NewtonScript (differential inheritance), Act1 (actors and futures for concurrency), Lisp (code is a runtime-inspectable message tree), and Lua (small and embeddable).
The VM is written in portable C and now targets WebAssembly (WASI) by default. The same binary runs under wasmtime, Node.js, or directly in the browser via a bidirectional Io↔JavaScript bridge.
if, while, and for are implementable in Io itself.asyncSend or futureSend messages and run its own coroutine. Futures are transparent (they become their result) and detect deadlocks automatically.Sequence primitive, with multiple item types, text encodings, and SIMD acceleration on float vectors.Guides, tutorial, language reference, and design notes.
View →Io language VM source repository.
View →Common questions about Io — its origins, philosophy, and practical use.
View →Milestones in Io's history, from 2002 to today.
View →For AI agents: llms.txt (curated index) and llms-full.txt (full content).