Installable WebAssembly apps
Originally published on Medium.
I updated ghr to be able to install WebAssembly apps. I created a GitHub release for the "hello" app — a WebAssembly binary built using a WASI 0.3 CLI, so it requires Wasmtime 46 or newer. It works cross-platform: I tested it on Windows, Linux, and Mac.
The release page has only three assets. The app itself is about 3 KB. A .wasm.ghr sidecar file names the WebAssembly runtime and its runtime args, and a .minisig sidecar lets anyone verify that I published it.
ghr install cataggar/wabt/hello@hello-2.0.0That's the whole install experience: one command resolves the release, downloads a 3 KB component instead of a platform-specific binary for every OS/arch combination, verifies it, and wires up a runnable command backed by Wasmtime.
Why this matters
A single WebAssembly component can replace a matrix of native binaries — no more publishing separate linux-x64, linux-arm64, macos-arm64, macos-x64, windows-x64, and windows-arm64 archives for a CLI tool that doesn't need direct OS access. The .wasm.ghr sidecar tells ghr which WASI runtime to invoke and with what arguments, so `ghr install` can make a 3 KB component feel like any other installed command.
See it in action: github.com/cataggar/wabt/releases/tag/hello-2.0.0
