# wazero/wazero

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/wazero-wazero).**

5,946 stars · 313 forks · Go · apache-2.0

## Links

- GitHub: https://github.com/wazero/wazero
- Homepage: https://wazero.io
- awesome-repositories: https://awesome-repositories.com/repository/wazero-wazero.md

## Topics

`ahead-of-time` `compiler` `go` `golang` `runtime` `vm` `wasi` `wasm` `webassembly`

## Description

wazero is a pure Go WebAssembly runtime that compiles and executes Wasm modules without CGO or any external dependencies. It provides a zero-dependency engine that runs on every Go-supported platform, including riscv64, making it a fully self-contained solution for embedding WebAssembly execution inside Go applications.

The runtime offers two execution modes: an ahead-of-time compiler that translates WebAssembly modules into platform-specific machine code for near-native performance, and an interpreter that executes bytecode directly for maximum portability across architectures. Each module is instantiated in its own sandbox with isolated memory, globals, and tables to prevent host corruption. wazero also includes a host function bridge that exports Go functions as host modules, allowing WebAssembly guests to import and call them for I/O and other system operations.

The project provides a complete surface for compiling WebAssembly binaries, running exported functions, and bridging Go code with guest modules, all within a single Go program. Its documentation covers installation, compilation, execution, and host function integration.

## Tags

### Programming Languages & Runtimes

- [Embedded WebAssembly Runtimes](https://awesome-repositories.com/f/programming-languages-runtimes/runtime-execution-environments/webassembly/embedded-webassembly-runtimes.md) — Runs WebAssembly modules inside a Go application without external dependencies or CGO.
- [Go-to-Wasm Bridges](https://awesome-repositories.com/f/programming-languages-runtimes/c-based-embedding-apis/go-c-bridges/go-to-wasm-bridges.md) — Exports Go functions as host modules for WebAssembly guests to import and call. ([source](https://wazero.io/docs/))
- [Bytecode Interpreters](https://awesome-repositories.com/f/programming-languages-runtimes/compiler-interpreter-internals/compiler-infrastructure/compilers/bytecode-interpreters.md) — Executes WebAssembly bytecode directly without compilation, supporting any Go target including riscv64.
- [Ahead-Of-Time Compilers](https://awesome-repositories.com/f/programming-languages-runtimes/compiler-interpreter-internals/compiler-toolchains/execution-mode-engines/ahead-of-time-kernel-compilation/ahead-of-time-compilers.md) — Translates WebAssembly modules into platform-specific machine code ahead of time for near-native speed.
- [Go-Based Language Runtimes](https://awesome-repositories.com/f/programming-languages-runtimes/go-based-language-runtimes.md) — Runs compiled WebAssembly binaries inside a Go application without external dependencies or CGO.
- [Host Function Exposure](https://awesome-repositories.com/f/programming-languages-runtimes/host-function-exposure.md) — Registers Go functions as host modules callable from WebAssembly guest modules.
- [Embedded Wasm Runtimes](https://awesome-repositories.com/f/programming-languages-runtimes/runtime-execution-environments/webassembly/embedded-wasm-runtimes.md) — Compiles a WebAssembly binary into a sandboxed module and runs its exported functions from a Go program. ([source](https://wazero.io/docs/))

### Development Tools & Productivity

- [WebAssembly Sandboxing](https://awesome-repositories.com/f/development-tools-productivity/plugin-systems/webassembly-sandboxing.md) — Instantiates each WebAssembly module in a separate sandbox with isolated memory, globals, and tables.

### Security & Cryptography

- [Wasm Sandboxes](https://awesome-repositories.com/f/security-cryptography/application-and-system-security/sandbox-and-isolation/isolated-execution-sandboxes/wasm-sandboxes.md) — Instantiates each WebAssembly module in an isolated sandbox with separate memory, globals, and tables.

### Software Engineering & Architecture

- [Zero-Dependency Libraries](https://awesome-repositories.com/f/software-engineering-architecture/zero-dependency-libraries.md) — A pure Go WebAssembly engine that runs on any Go-supported platform without CGO or system libraries.

### DevOps & Infrastructure

- [Cross-Platform Execution](https://awesome-repositories.com/f/devops-infrastructure/cross-platform-deployment-targets/cross-platform-execution.md) — Executes WebAssembly on any Go-supported architecture including riscv64 through an interpreter. ([source](https://cdn.jsdelivr.net/gh/wazero/wazero@main/README.md))
