Hello World Example
This example shows how to define plugin interfaces, generate Go code and use it.
Generate Go code
A proto file is under ./greeting.
$ protoc --go-plugin_out=. --go-plugin_opt=paths=source_relative greeting/greet.proto
Compile a plugin
Use TinyGo to compile the plugin to Wasm.
This example contains two plugins, plugin-morning and plugin-evening.
$ tinygo build -o plugin-morning/morning.wasm -scheduler=none -target=wasi --no-debug plugin-morning/morning.go
$ tinygo build -o plugin-evening/evening.wasm -scheduler=none -target=wasi --no-debug plugin-evening/evening.go
Run
main.go loads the above two plugins.
$ go run main.go
Good morning, go-plugin
Good evening, go-plugin