wasmtime-go
wasmimg
wasmtime-go | wasmimg | |
---|---|---|
2 | 1 | |
755 | 2 | |
2.5% | - | |
6.2 | 5.0 | |
12 days ago | 10 months ago | |
Go | Go | |
Apache License 2.0 | 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.
wasmtime-go
-
Wazero: Zero dependency WebAssembly runtime written in Go
[2] https://github.com/bytecodealliance/wasmtime-go
- Options for running WASM in Go?
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?
wasmer-go - 🐹🕸️ WebAssembly runtime for Go
extism - The framework for building with WebAssembly (wasm). Easily load wasm modules, move data, call functions, and build extensible apps.
Pion WebRTC - Pure Go implementation of the WebRTC API
wazero-coremark - CoreMark 1.0 for wazero
webassembly-wasi-experiments - Discover WebAssembly System Interface (WASI) with C/Rust use cases
go-plugin - Go Plugin System over WebAssembly
wasm4 - Build retro games using WebAssembly for a fantasy console.
wazero - wazero: the zero dependency WebAssembly runtime for Go developers
go-plugin - Golang plugin system over RPC.
wagon - wagon, a WebAssembly-based Go interpreter, for Go.
capsule - A Capsule application is a runner (or launcher) of wasm functions. Capsule HTTP can serve the functions through HTTP (it’s possible to use Capsule as a simple CLI with Capsule CLI). And soon: NATS and MQTT