It's a runtime for WASI blobs (basically a WASM based standard for crossplatform command line tools), for instance:
emcc hello.c -o hello.wasm
wasmer hello.wasm
Hello World!
This uses Emscripten as C compiler, but alternatively you can use the wasi-sdk toolchain instead of Emscripten to build WASI blobs:
- https://github.com/WebAssembly/wasi-sdk
...or Zig as C compiler:
zig cc -target wasm32-wasi hello.c -o hello.wasm
wasmer hello.wasm
Hello World!
...or of course Zig as Zig compiler :)
zig -target wasm32-wasi hello.zig
wasmer hello.wasm
Hello World!
(not sure if the Rust toolchain comes with builtin WASI support, but probably yes).
...or instead of wasmer use another WASI runtime:
- https://github.com/wasmerio/awesome-wasi?tab=readme-ov-file#...
...this is probably the best part of WASM and WASI, there's no 'vendor lock-in'.