WebAssembly
Wasmer & Wazero are great runtimes to execute WebAssembly on the server. Zaplib is great library. WebAssembly Weekly is good newsletter to stay up to date on WASM.
This guide how to create minimal WASM module is nice. Looking into trying out AssemblyScript.
Enarx is neat way to run WASM safely.
Links
- WebAssemblyLanguages
- WebAssembly Studio - Learn, Teach, Work and Play in the WebAssembly Studio.
- wasm-pack - Pack up the wasm and publish it to npm.
- Dan Callahan: Practical WebAssembly
- WebAssembly Spec
- WebAssembly Demystified
- Life - Secure WebAssembly VM catered for decentralized applications.
- Calls between JavaScript and WebAssembly are finally fast
- Wasmer - High-Performance WebAssembly JIT interpreter. (Wasmer 1.0) (HN)
- wac - WebAssembly in C.
- Wasmjit - Kernel Mode WebAssembly Runtime for Linux.
- AssemblyScript - TypeScript to WebAssembly compiler. (Web)
- Twiggy - Code size profiler.
- Olin - Environment to run and operate functions as a service projects using event sourcing and webassembly under the hood.
- Wasmtime - Standalone wasm-only runtime for WebAssembly, using the Cranelift JIT.
- wasmtime-py - Python WebAssembly runtime powered by Wasmtime. (Docs)
- Cranelift Code Generator - Low-level retargetable code generator. It translates a target-independent intermediate representation into executable machine code..
- Standardizing WASI: A system interface to run WebAssembly outside the web (2019)
- WASI - WebAssembly System Interface. (Code).
- wasi-rust - WASI API Bindings for Rust.
- Lucet - Sandboxing WebAssembly Compiler.
- Wasmer - Leading WebAssembly Runtime supporting WASI and JavaScript. (Web) (HN)
- WebAssembly Playground
- Wasmer is taking WebAssembly beyond the browser (2019)
- Wasmer - Python extension to run WebAssembly binaries.
- WebAssembly Micro Runtime - Standalone WebAssembly (WASM) runtime with a small footprint.
- inNative - Native non-web embedding of WebAssembly for Windows/Linux.
- Introducing inNative (2019) - Run WebAssembly Outside The Sandbox at 95% Native Speed.
- Compiling C to WebAssembly without Emscripten (2019)
- Wasm By Example
- Lightbeam - Optimising one-pass streaming compiler for WebAssembly, intended for use in Wasmtime.
- Pragmatic compiling of C++ to WebAssembly. A Guide. (2019)
- wasm-pack - Your favorite rust -> wasm workflow tool.
- M3/Wasm - High performance WebAssembly interpreter in C.
- WebAssembly Tool Conventions - Conventions supporting interoperatibility between tools working with WebAssembly.
- go-web-app - CLI for setting up Go WebAssembly frontend app.
- WABT - WebAssembly Binary Toolkit.
- RustConf 2019 - From Electron, to Wasm, to Rust (Aaand Back to Electron) by Irina Shestak
- WebAssembly Runtimes
- WAVM - WebAssembly Virtual Machine. Uses LLVM to compile WebAssembly code to machine code with close to native performance.
- Lobsters: Why WebAssembly is not more mainstream? (2019)
- 2015 LLVM Developers’ Meeting: Jf Bastien & Dan Gohman “WebAssembly: Here Be Dragons"
- TiDB in the Browser: Running a Golang Database on WebAssembly
- Forest - Functional programming language that compiles to WebAssembly.
- WebAssembly.sh - WASM/WASI sandboxed terminal in the browser.
- WebAssembly meetings (VC or in-person), agendas, and notes
- WebAssembly proposals
- Bytecode Alliance - Open source community dedicated to creating secure new software foundations, building on standards such as WebAssembly and WebAssembly System Interface (WASI).
- How to create polyglot HTML/JS/WebAssembly module
- Patrick Hamann | WebAssembly – To the browser and beyond (2019) (Slides)
- wasmboy - Game Boy / Game Boy Color Emulator Library, 🎮written for WebAssembly using AssemblyScript.
- Awesome WebAssembly Languages
- WASM as a Platform for Abstraction (2019) (HN)
- Making really tiny WebAssembly graphics demos (2019) (Code)
- WASM Metal - Bare metal physical implementation of WebAssembly. That's right, a WebAssembly CPU.
- JSC.js - JavaScriptCore on WebAssembly.
- WebAssembly Beyond the Browser • Dan Callahan (2020)
- Debugging Through WebAssembly Is Impossible (2020) (Lobsters)
- Wasm3 - High performance WebAssembly interpreter written in C. (HN)
- Fast, parallel applications with WebAssembly SIMD (2020)
- Evolving Wasm into a proper misnomer: Andreas Rossberg (2019)
- Actually Using WASM
- asm-dom - Minimal WebAssembly virtual DOM to build C++ SPA (Single page applications).
- Firefox's low-latency webassembly compiler (2020)
- Bulk Memory Operations Proposal for WebAssembly
- wain - WebAssembly INterpreter written in Rust from scratch with zero dependency.
- Wasminspect - Interactive Debugger for WebAssembly.
- Run Clang in WebAssembly
- Wasienv - WASI Development Toolchain for C/C++.
- Enarx - Application deployment system enabling applications to run within Trusted Execution Environments (TEEs) without rewriting for particular platforms or SDKs. (Web) (Wiki) (Technical Introduction to Enarx) (Explained)
- What’s in that .wasm? Introducing: wasm-decompile (2020) (HN)
- First impressions on Rust and Webassembly (2020)
- Build your own WebAssembly Compiler (2019)
- WAKit - WebAssembly runtime written in Swift.
- gasm - WASM Virtual Machine for Gophers.
- The WebAssembly App Gap (2020)
- parity-wasm - Low-level WebAssembly format library.
- wasm-tools - Low level tooling for WebAssembly in Rust.
- Parcel and Rust: A WASM Romcom (2020) (HN)
- AssemblyScript Examples
- Generating WebAssembly CPU Profiles in Go (2019)
- WebAssembly Weekly - Community-driven weekly newsletter about WebAssembly. (Code) (Twitter)
- Rust, WebAssembly, and Javascript Make Three: An FFI Story (2019)
- Rust WebAssembly Workshop
- Woz - Progressive WebAssembly app (PWAA) generator for Rust.
- waSCC - Dynamic, elastically scalable WebAssembly host runtime for securely connecting actors and capability providers. (Code)
- Moving from TypeScript to Rust / WebAssembly (2020) (HN)
- Hunting down a non-determinism-bug in our Rust Wasm build (2020)
- Boids in WebAssembly Using Go (2020) (Lobsters) (Code)
- WebAssembly in the Cloud
- Single Page Applications using Rust and WASM (2020) (HN) (Lobsters)
- Golang Desktop App with Webview/Lorca, WASM and Bazel (2020) (HN)
- Bytecode Alliance RFCs
- Webassembly Without The Browser (2020) (HN)
- Everything Old is New Again: Binary Security of WebAssembly (2020) (HN) (HN 2)
- Hands-on WebAssembly: Try the basics (2020) (HN)
- WebAssembly Troubles: WebAssembly Is Not a Stack Machine (2020)
- Wasmer Python - WebAssembly runtime for Python.
- WebAssembly C and C++ API
- Explorable Programming with Rust and WebAssembly (2020)
- wasm-remapper-web - Web app to help reverse engineer WebAssembly binaries.
- wasi-fs-access - Demo shell powered by WebAssembly, WASI, Asyncify and File System Access API.
- WASI Libc - Libc for WebAssembly programs built on top of WASI system calls.
- Low-Level Academy WebAssembly modules
- Trunk - Build, bundle & ship your Rust WASM application to the web. (Web)
- wasmbin - Self-generating WebAssembly parser & serializer in Rust. (Article)
- Sourcegraph Podcast: Syrus Akbary, founder and CEO of Wasmer (2020)
- Go, WebAssembly, HTTP requests and Promises (2020)
- AssemblyLift - Framework for building serverless applications powered by WebAssembly.
- WebAssembly Design Docs
- Speed up Python with Rust via WebAssembly
- V8 WASM Compilation Pipeline (2020)
- ws_stream_wasm - Convenience library for using web sockets in WASM.
- Orthogonal Persistence, Webassembly, and Rust (2020) (Lobsters)
- acot - Open-source Accessibility Testing Framework.
- Debugging WebAssembly with modern tools (2020)
- WebAssembly as Meta-Language (2020)
- Yo WASM – The Easy Way to WebAssembly (2020)
- as-wasi - High-level AssemblyScript layer for the WebAssembly System Interface (WASI).
- WebAssembly Studio (HN)
- Metallic - C runtime library (libc) for WebAssembly.
- Wizer - WebAssembly Pre-Initializer.
- Hosting WebAssembly in Swift (2021)
- Rust and WebAssembly Book - Small book describes how to use Rust and WebAssembly together. (Code)
- Property-Based Testing of WebAssembly - Implements a stack-driven generator of arbitrary WebAssembly programs.
- WASM to OCI - Use OCI registries to distribute WASM modules.
- A practical guide to WebAssembly memory (2021)
- A simple WebAssembly linker in JavaScript (2021)
- Towards sockets and networking in WebAssembly and WASI (2020)
- box2d-wasm - Box2D physics engine compiled to WebAssembly. Supports TypeScript and ES modules.
- wasm-tool/wasi - Import WebAssembly modules that expose the WebAssembly System Interface (WASI).
- Fizzy - Fast, deterministic, and pedantic WebAssembly interpreter written in C++.
- WebAssembly in Action Book (2019) - With examples using C++ and Emscripten. (Code)
- WebAssembly WASI Experiments
- WAGI: WebAssembly Gateway Interface
- WebAssembly Reference Manual
- go-wasm-http-server - Embed your Go HTTP handlers in a ServiceWorker (usin WebAssembly) and emulate an HTTP server.
- Memory64 Proposal for WebAssembly
- Raw WebAssembly Demos (Web)
- Benchmark of WebAssembly runtimes
- WebAssembly Search Tools for Static Sites (2021) (Lobsters)
- vscode-wasm - Visual Studio Code client for the WebAssembly language server.
- Effect Handlers Proposal for WebAssembly
- WebAssembly Monorepo - Monorepo for dependency-free WebAssembly projects. Supports browser, web worker and Node.js runtimes.
- A Comparison between WebAssembly and RISC-V (2020)
- LAM: an actor-model VM for WebAssembly and native (2021)
- LAM - Lightweight alternative to the BEAM that runs as Native and WebAssembly binaries, both on WASI-enabled systems and browsers.
- Swag - Toy WASM interpreter written in Swift.
- Awesome WebAssembly Tools
- WASM signatures - Tool to add and verify digital signatures to/from WASM binaries.
- wasm-jseval - Safe eval library based on WebAssembly and Duktape/QuickJS.
- Is WebAssembly magic performance pixie dust? (2021) (HN) (Tweet)
- Web Bundler - Bundles a Rust WebAssembly frontend application for publishing.
- WASM Coq - WebAssembly (aka Wasm) formalization in Coq, based on the official formalization.
- Using asynchronous web APIs from WebAssembly (2021)
- Learning Web Assembly System Interface (WASI)
- aWsm - WebAssembly ahead-of-time compiler and runtime. Focuses on generating fast code, simplicity, and portability.
- wasm-run - Run arbitrary WASM/WASI files.
- Hit the Ground Running: Wasm Snapshots for Fast Start Up (2021)
- wasmCloud - Universal host runtime for actors built with WebAssembly and capability providers. (Web)
- WebContainer Core
- Rust WebAssembly React Template
- Defense in depth: stopping a Wasm compiler bug before it became a problem (2021)
- WebAssembly Tour
- WasmEdge - High-performance, extensible, and hardware optimized WebAssembly Virtual Machine for cloud, AI, and blockchain applications. (Web)
- webassemblyjs - Toolchain for WebAssembly.
- wasm-lsp-server - Language server implementation for WebAssembly.
- Making JavaScript run fast on WebAssembly (2021) (HN)
- Exploiting a zero-day WebAssembly Vulnerability in macOS Safari (2021)
- wasmlink - WebAssembly Module Linker.
- An introduction to WebAssembly for JavaScript Developers (2021)
- wapm - WebAssembly Package Manager.
- wasmi - WASM interpreter written by rust.
- First Steps with Web Assembly (WASM) & Rust (2021)
- Wasmer Ruby - WebAssembly runtime for Ruby. (Article)
- WebAssembly for Proxies (Go SDK)
- Extend your Go app with embedded WebAssembly functions in WasmEdge (2021)
- WebAssembly from Scratch: From FizzBuzz to DooM (HN)
- WasmEdge for Go Package
- Using WebAssembly threads from C, C++ and Rust (2021) (HN)
- Wasp - WebAssembly module decoder in C++.
- Aggregate streaming data in real-time with WebAssembly (2021) (HN)
- wasm3-rs - Rust wrapper for Wasm3, the fastest WebAssembly interpreter.
- WASI SDK - WASI-enabled WebAssembly C/C++ toolchain.
- SIMD proposal for WebAssembly
- wasm-bindgen-rayon - Adapter for enabling Rayon-based concurrency on the Web with WebAssembly.
- Wasmer-JS - Mono-repo of multiple JavaScript packages enabling easy use of WebAssembly Modules in Node and the Browser.
- foxwren - WebAssembly runtime in Zig.
- vite + wasm-pack starter
- run-wasm - Run WASM based code executions in the browser easily.
- Hippo - WebAssembly PaaS. Easiest way to deploy and serve applications compiled to WebAssembly. (Docs) (Intro)
- wamr-swift - Swift WebAssembly runtime powered by WAMR.
- Sat - Tiny WebAssembly compute module.
- Suborbital - Build web services in an entirely new way with Atmo, our open source framework, to harness the power of cloud native WebAssembly. (GitHub) (Twitter) (Tweet)
- Foundations: Wasm in Golang is fantastic (2021)
- DAPR WASM - Template project to demonstrate how to run WebAssembly functions as sidecar microservices in dapr.
- wasup - Zero-dependency, isomorphic library for emitting WebAssembly.
- WasmCert - Coq mechanization of WebAssembly specification.
- WebAssembly Website Code
- wasmCloud Host Runtime - Server process that securely hosts and provides dispatch for actors and capability providers.
- How I Failed to Change Wasmer (2021) (HN)
- witx-bindgen - Bindings generator framework for WebAssembly programs and embeddings of WebAssembly.
- Pikt.js - WebAssembly JavaScript library for Pikchr.
- Multi Memory Proposal for WebAssembly
- Wasp - WASM Programming Language. (HN)
- Emception - Compile C/C++ code with Emscripten in the browser.
- WASICaml - Translate OCaml bytecode to WebAssembly.
- ZBar.wasm - WASM build of C/C++ ZBar barcode scanning library.
- vite-plugin-rsw - wasm-pack plugin for Vite.
- WebAssembly for Proxies (Rust SDK)
- Building Rust WASM projects with Nix (2021) (Code)
- Wasi Tools
- wasm-streams - Bridging between web streams and Rust streams using WebAssembly.
- Module Linking proposal - Proposal for allowing modules to define, import and export modules and instances.
- Subwasm - CLI utility to help you know more about WASM Runtimes.
- js-wasm - JavaScript-WebAssembly interop library for C, Rust, Assemblyscript.
- wasm-pack-template - Template for kick starting a Rust and WebAssembly project using wasm-pack.
- embedded-wasm-apps - Run statically-compiled WebAssembly apps on any embedded platform.
- WebAssembly-in Go
- WASM Extension Template - Allows you to generate a "Hello World" web extension running a Rust program compiled to WASM.
- wasm2native - Turn WASI apps into native executables.
- Interface Types Proposal for WebAssembly
- Rust WASM Virtual Machine
- ES Module Integration Proposal for WebAssembly
- Chasm - Simple compile-to-WebAssembly language. (Web)
- Introduction to WebAssembly components (2021) (Reddit) (HN)
- WASM components example
- wasi-nn - Neural Network proposal for WASI.
- Tail Call Proposal for WebAssembly
- Threads Proposal for WebAssembly
- Javy - Run your JavaScript on WebAssembly.
- Swam - WebAssembly interpreter written in Scala with the cats library. (Web)
- w2c2 - Translates WebAssembly modules to C.
- WASM Internals - Deep dive into the WASM internal structure and behaviour. (Code)
- WASM Component Model design and specification
- serde-wasm-bindgen - Native integration of Serde with wasm-bindgen.
- WebAssembly Feature Detection - Small library to detect which features of WebAssembly are supported.
- JWebAssembly - Java bytecode to WebAssembly compiler.
- Envoy WASM with external gRPC server
- Shared Channel for WebAssembly
- Async Executor for WebAssembly
- wasmblr - C++ WebAssembly assembler.
- Faster TypedArrays: Vector Addition in WebAssembly (HN)
- rustwasmc - Rust compiler toolkit for WebAssembly apps in the WasmEdge Runtime.
- Made with WebAssembly - Showcase of awesome production applications, side projects, and use cases made with WebAssembly. (Code)
- Optimizing Matrix Multiplication in Pure WebAssembly (HN)
- WebAssembly: The New Kubernetes? (2021) (HN)
- pywasm3 - Python bindings for Wasm3, the fastest WebAssembly interpreter.
- Prime Video Uses WebAssembly (2022) (HN) (Reddit) (Reddit)
- zwld - Experimental wasm linker.
- Pay attention to WebAssembly (2022) (HN)
- Exploring SIMD performance improvements in WebAssembly (2021) (HN)
- yoga-wasm-web - Yoga but in WebAssembly.
- Wasmo - WebAssembly compiler and runtime.
- rsw-rs - wasm-pack based build tool.
- Exception Handling Proposal for WebAssembly
- create-wasm-app - npm init template for consuming rustwasm pkgs.
- s1vm - Fast WebAssembly (wasm) interpreter written in 100% safe Rust.
- wasm-util - WebAssembly utilities in TS.
- KWasm: Semantics of WebAssembly in K
- Building host implementations for WebAssembly interfaces (2022)
- GC Proposal for WebAssembly
- WebAssembly research ideas (2022)
- wasm-pack-template - Template for kick starting a Rust and WebAssembly project using wasm-pack.
- WASM Audio Decoders - Browser and NodeJS Web Assembly audio decoder libraries that are highly optimized for size and performance.
- WASI: a New Kind of System Interface (HN)
- Function Reference Types Proposal for WebAssembly
- Embeddable WebAssembly Parsers (2022)
- Rust-WASM - WASM interpreter written in Rust.
- ts-bindgen - Generates wasm-bindgen rust code for typescript declarations.
- Rust + WebAssembly Team - Point of coordination for all things Rust and WebAssembly.
- wasm-workflows-plugin - Executor Plugin for Argo Workflows that runs WebAssembly modules.
- Running WebAssembly as a Hyperscaled Edge Service (2022) (Reddit)
- WasmBoxC: Simple, Easy, and Fast VM-less Sandboxing (2020)
- Recommendations when publishing a WASM library (2022) (HN)
- Providers at Fiberplane (2022)
- fp-bindgen - Bindings generator for full-stack WASM plugins.
- How to create minimal WASM module (Tweet) (HN)
- WebAssembly in my browser desktop environment (2022) (HN)
- Spin - Framework for building, deploying, and running fast, secure, and composable cloud microservices with WebAssembly. (Docs) (Intro) (HN)
- Wala - Language trying to simplify WebAssembly Text syntax while keeping the full expressiveness and retro-compatibility.
- WASI Experimental Toolkit - Experimental interfaces for commonly used WebAssembly functionality.
- Fermyon Technologies - Building open source, WebAssembly-powered cloud tools.
- Amalgamated WebAssembly Test Suite
- WASM Builders
- TWA - Tiny pure C++ WebAssembly runtime.
- inline-webassembly - Inline WebAssembly (text format) into JS.
- Stack Switching Proposal for WebAssembly
- Marine - General purpose WASM runtime that could be used in different scenarios, especially in programs based on the entity component system (ECS) pattern or plugin architecture.
- SMK (Simple multimedia kit) - Simple multimedia kit - C++ WebAssembly.
- LZ4 WASM - LZ4 block format encoder/decoder: a WebAssembly implementation.
- wasmdec - WebAssembly to C decompiler.
- WasmNow - Fast WebAssembly Baseline Compiler.
- WebAssembly 2.0 First Working Draft (HN)
- JavaScript Garbage Collection with WebAssembly is Possible Today
- Entropy source API for WASI
- Awesome WASI
- Run WASM in Containerd (HN)
- Trickery to Tame Big WebAssembly Binaries (2022)
- Wizard Engine - Lightweight WebAssembly virtual machine designed for teaching and research.
- TWVM - Tiny, lightweight and efficient WebAssembly virtual machine.
- Fast WASM modules
- WASI Sockets - WASI API proposal for managing sockets.
- Wazero - Zero dependency WebAssembly runtime for Go developers. (Web) (HN)
- WebAssembly for Proxies (ABI specification) - Specification of the low-level Application Binary Interface (ABI) and conventions to use between L4/L7 proxies (and/or other host environments) and their extensions delivered as WebAssembly modules. (Zig SDK)
- Karmem - Fast binary serialization format, faster than Google Flatbuffers and optimized for TinyGo and WASM. (HN)
- WASI Native Threads API
- Content Security Policy Proposal for WebAssembly
- How Lunatic Brings Erlang's Principles to WebAssembly (2022) (Transcript) (HN)
- Tarmac - Framework for building distributed services with Web Assembly. (Docs)
- Rust+ WASM implementation of a beamformer in spectral analysis
- WebAssembly Components and wasmCloud Actors: A Glimpse of the Future (2022)
- Building a web application with Rust and WebAssembly (2022)
- Notes on WebAssembly (2022) (Lobsters)
- Weave - Viewer for WebAssembly .wasm files, like an interactive objdump. (Code)
- The State of WebAssembly 2022 (HN)
- WebAssembly Everywhere (2022)
- WebAssembly and C++ (2022) (HN)
- wasmedge-bindgen - Let WebAssembly's exported function support more data types for its parameters and return values.
- A fast in-place interpreter for WebAssembly (2022)
- Virgil - Fast and lightweight programming language that compiles to WASM. (HN)
- Wacko - WebAssembly Compiler.
- Brian Sletten: The Whole WebAssembly Enchilada (2022)
- Tell HN: We are trying to get tail calls into the WebAssembly standard (2022) (Lobsters)
- Awesome WebAssembly Plugins
- Why am I excited about WebAssembly? (2022) (HN)
- WITX-CodeGen - WITX code and documentation generator. WITX is a way to describe types and function interfaces for WebAssembly modules.
- Enarx Codex - Code examples that can be compiled to WebAssembly for use with Enarx.
- How WASM could impact the future of programming languages (2022)
- Wasp - WASM System Plugins for Go.
- WebAssembly Reference Interpreter in OCaml
- Rust and WebAssembly without a Bundler (2022)
- Wasmflow - Free and open platform for building applications out of WebAssembly code containers.
- as-bind - Isomorphic library to handle passing high-level data structures between AssemblyScript and JavaScript.
- WebAssembly as a Universal Binary Format (Part I: Native executables) (2022)
- N-body WebAssembly simulation using Web GPU
- wasmc - Compile .wat files into .wasm binaries.