go-plugin
wasmimg
go-plugin | wasmimg | |
---|---|---|
5 | 1 | |
537 | 2 | |
- | - | |
4.0 | 5.0 | |
about 1 month ago | 10 months ago | |
Go | Go | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
go-plugin
- Go-Plugin – Go Plugin System over WebAssembly
-
Wazero: Zero dependency WebAssembly runtime written in Go
you mean like this? https://github.com/knqyf263/go-plugin ;)
wazero under the hood, by one of our awesome community members
- Go Plugin System over WebAssembly
- How would you guys support plugins in a Go app? (or any other compiled language for that matter)
wasmimg
-
Wazero: Zero dependency WebAssembly runtime written in Go
Using WASM for things requiring low IO and high compute that are traditionally written in C/C++ makes a lot of sense to me. Image codecs are an example and native implementations for things like JPEG encoders are hard to come by. So, I used wazero to implement a few image codecs in Go^1. Codecs were compiled to WASM, and wazero works great for running them (albeit with overhead).
For this use case, wazero appears to be the cleanest solution as it's the only runtime that doesn't need CGo. The biggest appeal to me embedding WASM in Go is avoiding CGo to allow cross compilation. If my dependency is using CGo anyway, I might as well as link against a C library. I think native WASM runtimes like wazero are currently the best options for porting code language-agnostically.
^1: https://github.com/yklcs/wasmimg
What are some alternatives?
yatas-template - Template for creating a plugin for YATAS
extism - The framework for building with WebAssembly (wasm). Easily load wasm modules, move data, call functions, and build extensible apps.
xcontroller - A sample Kubernetes Controller using protobuf to define CRD model
wazero-coremark - CoreMark 1.0 for wazero
go-plugin - Golang plugin system over RPC.
wazero - wazero: the zero dependency WebAssembly runtime for Go developers
mattermost-plugin-remind - a mattermost plugin that sets reminders for users and channels.
wasmtime-go - Go WebAssembly runtime powered by Wasmtime
docker-volume-plugins - Managed docker volume plugins
endure - ⚡ Fault-tolerant service container for creating plugins