...

Text file src/github.com/tetratelabs/wazero/examples/basic/README.md

Documentation: github.com/tetratelabs/wazero/examples/basic

     1## Basic example
     2
     3This example shows how to extend a Go application with an addition function
     4defined in WebAssembly.
     5
     6```bash
     7$ go run add.go 7 9
     87 + 9 = 16
     9```
    10
    11### Compilation
    12
    13wazero is a WebAssembly runtime, embedded in your host application. To run
    14WebAssembly functions, you need access to a WebAssembly Binary (Wasm),
    15typically a `%.wasm` file.
    16
    17[add.wasm](testdata/add.wasm) was compiled from [add.go](testdata/add.go) with
    18[TinyGo][1], as it is the most common way to compile Go source to Wasm. Here's
    19the minimal command to build a `%.wasm` binary.
    20
    21```bash
    22cd testdata; tinygo build -o add.wasm -target=wasi add.go
    23```
    24
    25### Notes
    26
    27* Many other languages compile to (target) Wasm including AssemblyScript, C,
    28  C++, Rust, and Zig!
    29* The embedding application is often called the "host" in WebAssembly.
    30* The Wasm binary is often called the "guest" in WebAssembly. Sometimes they
    31  need [imports](../../imports) to implement features such as console output.
    32  TinyGo's `wasi` target, requires [WASI][2] imports.
    33
    34[1]: https://wazero.io/languages/tinygo
    35[2]: https://wazero.io/specs/#wasi

View as plain text