gitmyhub

design

★ 12k updated 8mo ago

WebAssembly Design Documents

The official design documents for WebAssembly, explaining why it was built, how its security model works, and the trade-offs behind key decisions, maintained by the W3C WebAssembly Community Group.

WebAssemblyMarkdownsetup: easycomplexity 1/5

WebAssembly (often abbreviated Wasm) is a binary format for running code in web browsers and other environments at near-native speed. Unlike JavaScript, which browsers interpret and compile at runtime, WebAssembly is designed as a compact, low-level format that multiple programming languages can compile to. This lets code written in languages like C, C++, or Rust run inside a browser without being rewritten in JavaScript.

This repository is the design home for WebAssembly, maintained by the WebAssembly Community Group, which is part of the World Wide Web Consortium (W3C). It contains high-level design documents that explain the thinking behind how WebAssembly works, why it was designed the way it was, and what trade-offs were made. It also hosts the issue tracker for early-stage proposals (called phase 0 proposals) and a discussion forum for questions.

The design documents cover topics like the high-level goals of the project, what portability means in the context of WebAssembly, the rationale behind various design decisions, the security model (how Wasm code is sandboxed from the host system), and how nondeterminism is handled (cases where the same code might behave slightly differently across platforms).

A note in the README points out that some of these documents are out of date, and the group is working to update them over time. For the formal, normative specification of WebAssembly (the precise rules the standard is built on), the design documents here are not the right source. The canonical spec lives separately. For general information about WebAssembly and getting started, the project points to webassembly.org.

Where it fits