- [WebAssembly component book](https://wasm-components.netlify.app/encoding.html)
Interpreters
- wasmtime
- [Web49](https://github.com/FastVM/Web49)
- wasmer
- [wasm-micro-runtime - wamr](https://github.com/bytecodealliance/wasm-micro-runtime)
Servers
- [wasmedge](/wasmedge/)
- [wws](/vmware/)
- [fastly: Compute@Edge & Viceroy](/fastly/)
- spin
- [wagi](/wagi/)
- [Shopify Functions](/shopify/)
- [Vercel](https://vercel.com/docs/concepts/functions/edge-functions/wasm),
[Cloudflare](https://blog.cloudflare.com/webassembly-on-cloudflare-workers/),
[Supabase Edge Functions](https://supabase.com/blog/edge-runtime-self-hosted-deno-functions)
all use V8, with Wasm
Tools
- [`wasm-opt` by binaryen - optimise wasm
size](https://github.com/WebAssembly/binaryen)
- [`wabt` - The WebAssembly Binary Toolkit](https://github.com/WebAssembly/wabt)
- [`wasm-tools`](https://github.com/bytecodealliance/wasm-tools)
- [WasmExplorer](https://mbebenita.github.io/WasmExplorer/)
Bindgen
Since wasm can only speak i32, i64, f32, and f64, passing other data types like
string, structs etc is hard. Bindgens generate glue code that helps with these
back and forth.
- https://surma.dev/things/rust-to-webassembly/index.html
- [Rust Without Bindgen](https://surma.dev/things/rust-to-webassembly/)
- Article: [Getting data in and out of WASI
modules](https://petermalmgren.com/serverside-wasm-data/)
- Article: [A practical guide to WebAssembly
memory](https://radu-matei.com/blog/practical-guide-to-wasm-memory/)
- [Radu's Posts About #wasm Are Great](https://radu-matei.com/tags/wasm/)
- [@adlrocha - Playing with Wasmtime and Web Assembly's linear
memory](https://adlrocha.substack.com/p/adlrocha-playing-with-wasmtime-and)
- [fp-bindgen](/fp-bindgen/)
Performance
- [Plugins for Rust](https://reorchestrate.com/posts/plugins-for-rust/)
- [wizer](/wizer/)