diswasm

WASM analysis workbench
HomeDocsReferenceCompilerRuntimeBenchmarksDisassemblyDecompileEditEasy EditorIntermediateCreateSavedControllerGame StudioAboutLicensesContributorsOpen source

Local-first parsing. No automatic module execution.

self-hosted mode

WebAssembly Documentation

Structured guides for learning WASM, WAT, runtime behavior, browser integration, and security.

Start HereWebAssembly From First Principles

What WebAssembly is, why it exists, where it fits, and when not to use it.

introvmjavascriptstable
RuntimeRuntime And VM Concepts

Validation, compilation, instantiation, interpreter/baseline/JIT paths, and why predictable types matter.

runtimejitvalidationllvmstable
Start HereWASM Compared With Flash And Plugins

How WebAssembly differs from Flash, ActionScript, Shockwave, and NPAPI plugin models.

securityhistorypluginsstable
CompilationLanguages That Compile To WebAssembly

Source languages, compiler frontends, IRs, backends, WAT, binaries, imports, and glue.

ccpprustgostable
BinaryBinary Format And Module Structure

Magic bytes, version, sections, opcodes, LEB128, and byte-level inspection.

binarysectionsleb128opcodesstable
SecuritySigning, Integrity, And Encryption

Code signing, SRI, hashes, trusted origins, and what browsers actually validate.

securityintegritysigningstable
RuntimeBlob, ArrayBuffer, Fetch, And Streaming

How to load WASM from fetch, streaming APIs, ArrayBuffer, Uint8Array, Blob, upload, or generated bytes.

fetchblobarraybufferstreamingstable
RuntimeLinear Memory

Pages, growth, typed array views, JS sharing, strings, pointers, bounds checks, and W^X safety.

memorysecuritystringspointersstable
RuntimeWASM Written In WASM

Interpreters, self-hosting, bytecode in memory, host compilation, and why this is not raw memory execution.

interpreterself-hostingmemorystable
RuntimeTables, Dynamic Dispatch, And References

funcref, externref, call_indirect, virtual tables, imported/exported tables, and safety.

tablefuncrefexternrefcall_indirectstable
RuntimeModules, Instances, Imports, And Exports

The difference between compiled module code and running instance state.

moduleinstanceimportsexportsstable
RuntimeGlobals And String Constants

Mutable/immutable globals, JS Global objects, numeric globals, imported string constants, and string passing.

globalsstringsbuiltinsexperimental
RuntimeRuntime Interaction And Inspection

Inspect memory, tables, globals, exports, mutate state, call functions, and observe traps.

runtimeinspectordebuggingstable
RuntimeESM-Style WASM Loading

Loading WebAssembly modules with module-like semantics and feature-detected demos.

esmmodulesloadingexperimental
RuntimeWASM With Web APIs

Canvas, WebGL, WebGPU, DOM, BOM, audio, camera, files, workers, service workers, and WASI.

webglwebgpudomworkersstable
CompilationEmscripten And JavaScript Glue

Why generated JS glue exists and how C/C++ libraries map onto web APIs.

emscriptengluesdlopenglstable
WATWAT And S-Expressions

Text format, nested and flat forms, Lisp-like syntax, binary mapping, and why WAT is useful.

wats-expressionslispbinarystable
WATStack Machine Model

Operand stack, value types, blocks, loops, branches, calls, and stack effects.

stacki32i64f32stable
WATFunction Syntax

Names, indices, params, results, locals, local.get/set/tee, exports, and imports.

functionslocalsexportsstable
WATTypes And Function Types

Reusable signatures, type indices, params/results, typed references, and proposal support.

typessignaturesgcstable
WATFunction Calls

Direct calls, indirect calls, imported callbacks, JavaScript exports, dispatch tables, and globals.

callcall_indirectimportstablesstable
WATImports

Importing functions, memory, tables, globals, host functions, and env namespaces.

importsenvhoststable
WATMemory In WAT

Declaring/importing/exporting memory, loads/stores, data, fill/copy/init/drop, memory64, and custom page warnings.

memorywatmemory64multimemorystable
WATMemory And JavaScript

WebAssembly.Memory, ArrayBuffer, SharedArrayBuffer, typed views, imported/exported memory, and shared state.

memoryjavascriptsharedarraybufferstable
WATHigher-Order Concepts

State machines, pure functions, data flow, compiler IR, deterministic execution, and runtime state.

functionalstateirstable
WATString Examples And Base64 Scaffold

UTF-8, TextEncoder/TextDecoder, pointer/length passing, and a base64 decoder scaffold with altchars.

stringsutf8base64scaffold
RuntimeThreads

Shared memory, SharedArrayBuffer, workers, shared workers, headers, notifications, and browser support.

threadsworkerssharedarraybuffercoopexperimental
JavaScript APIJavaScript WebAssembly Namespace

WebAssembly is a namespace with static methods and constructor interfaces, not a class to instantiate.

javascriptnamespaceapistable
JavaScript APIWebAssembly.Module

Compiled module representation, imports, exports, storage, caching, and sharing.

modulejavascriptstable
JavaScript APIWebAssembly.Global

Mutable/immutable globals, JS-created globals, imports, exports, and numeric limitations.

globaljavascriptstable
JavaScript APIWebAssembly.Instance

Instance creation, exports, imports, running state, calls, and inspection.

instancejavascriptstable
JavaScript APIWebAssembly.Memory

Create, read, write, grow, share, and use memory without a WASM module.

memoryjavascriptstable
JavaScript APIWebAssembly.Table

Tables, funcref, externref, get/set/grow, and dispatch safety.

tablejavascriptstable
JavaScript APIExceptions And Tags

Exception/tag interfaces, thrown errors, tag data, retries, and support caveats.

exceptionstagsproposalexperimental
JavaScript APICompile, Link, And Runtime Errors

CompileError, LinkError, RuntimeError, validation errors, import errors, memory errors, traps, and type mismatches.

errorstrapsdebuggingstable
Binary FormatReading WebAssembly Opcodes

What opcodes are, how WAT maps to binary bytes, prefixed opcode spaces, LEB128 immediates, and why some WAT forms have no opcode.

opcodesbinaryleb128encodingstable

Sections

Start Here

WebAssembly From First PrinciplesWASM Compared With Flash And Plugins

Runtime

Runtime And VM ConceptsBlob, ArrayBuffer, Fetch, And StreamingLinear MemoryWASM Written In WASMTables, Dynamic Dispatch, And ReferencesModules, Instances, Imports, And ExportsGlobals And String ConstantsRuntime Interaction And InspectionESM-Style WASM LoadingWASM With Web APIsThreads

Compilation

Languages That Compile To WebAssemblyEmscripten And JavaScript Glue

Binary

Binary Format And Module Structure

Security

Signing, Integrity, And Encryption

WAT

WAT And S-ExpressionsStack Machine ModelFunction SyntaxTypes And Function TypesFunction CallsImportsMemory In WATMemory And JavaScriptHigher-Order ConceptsString Examples And Base64 Scaffold

JavaScript API

JavaScript WebAssembly NamespaceWebAssembly.ModuleWebAssembly.GlobalWebAssembly.InstanceWebAssembly.MemoryWebAssembly.TableExceptions And TagsCompile, Link, And Runtime Errors

Binary Format

Reading WebAssembly Opcodes