WebAssembly
Awesome WebAssembly
¶
A curation of WebAssembly resources, projects, and communities.
WebAssembly (abbreviated Wasm) is a binary instruction format for a stack-based virtual machine. Wasm is designed as a portable compilation target for programming languages, enabling deployment on the web for client and server applications.
Resources¶
Basics¶
Articles¶
- What is WebAssembly? - Eric Elliott, 2015.
- 7 Things You Should Know About WebAssembly - Sebastian Peyrott, 2015.
- WebAssembly Demystified - Andre Weissflog, 2017.
- Why WebAssembly? - Andreas Rossberg, 2018.
- The world's easiest introduction to WebAssembly - Martin Olsansky, 2019.
- The Future of Programming: WebAssembly & Life After JavaScript - Eric Elliott, 2024.
- The Web Assembles - Chris Price and Colin Eberhardt, 2017.
- An Empirical Study of Real-World WebAssembly Binaries - Aaron Hilbig, Daniel Lehmann, and Michael Pradel, 2021.
- Not So Fast: Analyzing the Performance of WebAssembly vs. Native Code - Abhinav Jangda, Bobby Powers, Emery D. Berger, and Arjun Guha, 2019.
- Provably-Safe Multilingual Software Sandboxing using WebAssembly - Jay Bosamiya, Wen Shih Lim, and Bryan Parno, 2022.
- Wasabi: A Framework for Dynamically Analyzing WebAssembly - Daniel Lehmann and Michael Pradel, 2019.
- Bringing the Web up to Speed with WebAssembly - Andreas Haas, Andreas Rossberg, Derek L. Schuff, Ben L. Titzer, Michael Holman, Dan Gohman, Luke Wagner, Alon Zakai, JF Bastien, 2017.
Books¶
- Rust and WebAssembly - Open-source book describing how to use Rust and WebAssembly together.
- Programming WebAssembly with Rust - Kevin Hoffman, 2019.
- The Art of WebAssembly - Rick Battagline, 2021.
Videos¶
- WebAssembly - Nick Bray, 2015.
- What is WebAssembly? - Lin Clark, 2017.
- Get Going with WebAssembly - Johan Brandhorst, 2018.
- WebAssembly and the Death of JavaScript - Colin Eberhardt, 2018.
Projects¶
Compilers¶
- Emscripten - Compile C and C++ to WebAssembly.
- AssemblyScript - TypeScript-like language compiled to WebAssembly.
- Binaryen - Compiler infrastructure for WebAssembly.
- TinyGo - Go compiler for WebAssembly.
Runtimes¶
- Wasmtime - Standalone WebAssembly runtime.
- WasmEdge - High-performance WebAssembly runtime.
- WAVM - WebAssembly virtual machine.
- Wasm3 - Small, fast WebAssembly interpreter.
- Wasmer - WebAssembly runtime for desktop, cloud, and edge.
Libraries¶
- wasm-bindgen - Interoperability between Rust and JavaScript.
- wasmer-js - WebAssembly runtime for JavaScript.
- wasm-pack - Build, test, and publish Rust-generated Wasm.
- Wabt - WebAssembly binary tolkit.
- WASI - WebAssembly system interface.
Tools¶
- Wasm Explorer - Visualize and debug WebAssembly binaries.
- wasm2c - Convert WebAssembly binaries to C.
Frameworks¶
- Blazor - .NET web framework running on WebAssembly.
- Yew - Rust framework for building web applications using WebAssembly.
- Leptos - Full-stack Rust framework for WebAssembly web apps.
Communities¶
Contributing¶
Contributions are welcome. Please read the contribution guidelines before submitting your changes.