Skip to content

Wago

pre-release @wago-org

A WebAssembly runtime for Go that compiles Wasm to native machine code without cgo, a C toolchain, or an interpreter.

Wago

Wago is a WebAssembly (Wasm) runtime for Go. It compiles Wasm to native machine code. It can run from the command line or inside a Go application.

Wago does not require cgo, a C toolchain, or an interpreter.

Why I am building it

I want a runtime that is compact, fast, and easy to embed. I also want host features to stay separate from the core runtime.

Wago uses plugins for system interfaces such as WASI, the Component Model, and Facet. This keeps the compiler and execution core smaller. It also lets an embedder choose which host capabilities a guest can use.

What it does

Engineering focus

Wago is also where I do much of my runtime engineering work. Important areas include:

How it fits with the other projects

Wago is the runtime layer for several projects on this site. Dewdrop can produce WasmGC modules that Wago runs. Facet has a Wago reference plugin. Stage Left is designed as a separate process model that a runtime such as Wago could implement.

Wago is still pre-release. The public API and .wago artifact format can still change while the project is prepared for a stable release.