wasm stuff

- [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/)