# 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.

## Contents

- Resources
  - Basics
  - Articles
  - Books
  - Videos
- Projects
  - Compilers
  - Runtimes
  - Libraries
  - Tools
  - Frameworks
- Communities

## Resources

### Basics

- WebAssembly MDN
- WebAssembly Specification

### 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

- WebAssembly GitHub Organization
- W3C WebAssembly Group
- WebAssembly Subreddit

## Contributing

Contributions are welcome. Please read the contribution guidelines before submitting your changes.

webassembly.md Github