Skip to content

Documentation components

Reusable components for clear, interactive Wago documentation. All components support keyboard navigation and narrow screens.

Tabbed code examples

Use VitePress's built-in code groups for examples in multiple languages or formats.

go
engine := wago.NewEngine()
module, err := engine.Compile(wasm)
if err != nil {
    return err
}
wat
(module
  (func (export "answer") (result i32)
    i32.const 42))
sh
wago run module.wasm

Tabbed sections

Compile a module once when it will be instantiated more than once.

go
module, err := engine.Compile(wasm)

Tabs with the same sync value remember the reader's choice and stay synchronized across the site.

Cards

Steps

Install Wago

sh
curl -fsSL https://wago.sh/install.sh | sh

Compile a module

Point Wago at a WebAssembly binary or WAT source file.

Run it

Execute the module and inspect its result.

Status badges

stableexperimentaldeprecatednightly

Accordions

What is compiled once?#

The validated module and native machine code can be reused by multiple isolated instances.

Does Wago require cgo?#

No. Wago is implemented in pure Go.

API endpoints

GET/api/packages List published plugins.
POST/api/packages/{name}/installs Record a completed plugin installation.

Comparisons

FeatureCanaryNightlyOfficial
CadenceSuccessful CIDailyPinned
StabilityExperimentalPreviewStable
Best forTestingEarly accessProduction

File trees

  • docs/
    • .vitepress/site configuration and theme
      • config.mtsnavigation and search
      • theme/Wago components
    • getting-started.md
    • reference/

Code annotations

wat
(module
  (func (export "answer") (result i32)
    i32.const 42))
  1. Exported function The `answer` export is available to the host by name.
  2. Typed result The function returns one 32-bit integer.
  3. Instruction body `i32.const` places the value `42` on the operand stack.

Released under the Apache 2.0 License.