explaingit

samyfodil/wazy

Analysis updated 2026-05-18

28GoAudience · developerComplexity · 4/5LicenseSetup · moderate

TLDR

A fast, pure Go library that lets your Go programs run WebAssembly code compiled from languages like Rust or C, with no external tools required.

Mindmap

mindmap
  root((wazy))
    What it does
      Runs WebAssembly in Go
      No CGO needed
      Pure Go implementation
    Tech stack
      Go
      WebAssembly
      WASI
      Component Model
    Use cases
      Embed plugins in Go apps
      Run Rust or C code from Go
      Serve components over HTTP
    Audience
      Go developers
      Systems programmers
    Strengths
      Speed benchmarks
      Async support
      Zero dependencies

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Add a plugin system to a Go application by running untrusted or third party code compiled to WebAssembly.

USE CASE 2

Run existing Rust, C, or Zig code inside a Go program without rewriting it.

USE CASE 3

Serve a WebAssembly component directly as an HTTP handler inside a Go web server.

USE CASE 4

Benchmark and compare WebAssembly runtime performance against wazero or wasmtime.

What is it built with?

GoWebAssemblyWASI

How does it compare?

samyfodil/wazykelseyhightower/twelveshieldnet-360/prompt-gate
Stars282828
LanguageGoGoGo
Last pushed2020-02-27
MaintenanceDormant
Setup difficultymoderatemoderate
Complexity4/51/5
Audiencedeveloperdeveloperops devops

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires familiarity with Go and, for full component support, WebAssembly toolchains like Rust's wasm32-wasip2 target.

Free to use, modify, and distribute, including commercially, under the Apache 2.0 license, as long as you keep the license notice and any stated changes.

In plain English

wazy is a WebAssembly runtime for the Go programming language. In plain terms, it lets a Go program load and run code that was compiled from other languages such as Rust, C, C++, TinyGo, or Zig into the WebAssembly format, without needing any external compiler toolchain or the C bridge Go calls CGO. Everything runs in pure Go, so it stays easy to build and deploy. The project's main selling point is speed. It descends from an existing runtime called wazero and claims to be substantially faster on several common operations, including calls between Go and WebAssembly code, growing a program's memory, and running loops that need to check for cancellation. The README includes detailed benchmark tables comparing it to wazero and to another well known runtime called wasmtime, along with instructions for running the same benchmarks yourself. Beyond raw speed, wazy supports newer parts of the WebAssembly standard that its predecessor does not, including the Component Model and versions 0.2 and 0.3 of WASI, which is a system interface standard for WebAssembly programs. This means it can run real components built by tools like the Rust compiler, including ones that use asynchronous features such as suspending and resuming tasks, streams, and futures. It also includes host interfaces covering things like the command line, the filesystem, networking, and HTTP, so a compiled component can act as a self contained program or even serve as an HTTP handler inside a Go web server. To use it, a Go developer runs a single command to add the package to their project, then writes Go code that creates a runtime, loads a WebAssembly module or component, and calls into it, optionally exposing Go functions back to the guest code as fast, typed host functions. The project is licensed under Apache 2.0 and notes that its newer component related API is still young and may change.

Copy-paste prompts

Prompt 1
Show me how to add wazy to a Go project and run a simple WebAssembly module with it.
Prompt 2
Explain how to expose a Go function as a host function that WebAssembly code compiled with wazy can call.
Prompt 3
Help me load a Rust wasm32-wasip2 component in Go using the wazy component package.
Prompt 4
Walk me through running wazy's benchmark suite to compare it against wazero on my machine.

Frequently asked questions

What is wazy?

A fast, pure Go library that lets your Go programs run WebAssembly code compiled from languages like Rust or C, with no external tools required.

What language is wazy written in?

Mainly Go. The stack also includes Go, WebAssembly, WASI.

What license does wazy use?

Free to use, modify, and distribute, including commercially, under the Apache 2.0 license, as long as you keep the license notice and any stated changes.

How hard is wazy to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is wazy for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.