{ "$schema": "./features.schema.json", "features": { "acquireReleaseAtomics": { "description": "Acquire-Release Atomics", "url": "https://github.com/WebAssembly/acquire-release-atomics", "phase": 2 }, "bigInt": { "description": "JS BigInt to Wasm i64 Integration", "url": "https://github.com/WebAssembly/JS-BigInt-integration", "phase": 5 }, "branchHinting": { "description": "Branch Hinting", "url": "https://github.com/WebAssembly/branch-hinting/blob/master/proposals/branch-hinting/Overview.md", "phase": 5 }, "bulkMemory": { "description": "Bulk Memory Operations", "url": "https://github.com/WebAssembly/bulk-memory-operations/blob/master/proposals/bulk-memory-operations/Overview.md", "phase": 5 }, "compactImportSection": { "description": "Compact Import Section", "url": "https://github.com/WebAssembly/compact-import-section/blob/main/proposals/compact-import-section/Overview.md", "phase": 4 }, "compilationHints": { "description": "Compilation Hints", "url": "https://github.com/WebAssembly/compilation-hints/blob/main/proposals/compilation-hints/Overview.md", "phase": 2 }, "componentModel": { "description": "Component Model", "url": "https://github.com/WebAssembly/component-model", "phase": 1 }, "customAnnotationSyntaxInTheTextFormat": { "description": "Custom Text Format Annotations", "url": "https://github.com/WebAssembly/annotations/blob/main/proposals/annotations/Overview.md", "phase": 5 }, "customDescriptors": { "description": "Custom Descriptors and JS Interop", "url": "https://github.com/WebAssembly/custom-descriptors/blob/main/proposals/custom-descriptors/Overview.md", "phase": 3 }, "customPageSizes": { "description": "Custom Page Sizes", "url": "https://github.com/WebAssembly/custom-page-sizes/blob/main/proposals/custom-page-sizes/Overview.md", "phase": 3 }, "esmIntegration": { "description": "ESM Integration", "url": "https://github.com/WebAssembly/esm-integration", "phase": 3 }, "exceptions": { "description": "Legacy Exception Handling", "url": "https://github.com/WebAssembly/exception-handling/blob/master/proposals/exception-handling/legacy/Exceptions.md", "phase": "inactive" }, "exceptionsFinal": { "description": "Exception Handling with exnref", "url": "https://github.com/WebAssembly/exception-handling/blob/master/proposals/exception-handling/Exceptions.md", "phase": 5 }, "extendedConst": { "description": "Extended Constant Expressions", "url": "https://github.com/WebAssembly/extended-const/blob/master/proposals/extended-const/Overview.md", "phase": 5 }, "extendedNameSection": { "description": "Extended Name Section", "url": "https://github.com/WebAssembly/extended-name-section/blob/main/proposals/extended-name-section/Overview.md", "phase": 2 }, "flexibleVectors": { "description": "Flexible Vectors", "url": "https://github.com/WebAssembly/flexible-vectors/blob/main/proposals/flexible-vectors/Overview.md", "phase": 1 }, "frozenValues": { "description": "Frozen Values", "url": "https://github.com/WebAssembly/frozen-values/blob/main/proposals/frozen-values/Overview.md", "phase": 1 }, "gc": { "description": "Garbage Collection", "url": "https://github.com/WebAssembly/gc", "phase": 5 }, "halfPrecision": { "description": "Half Precision", "url": "https://github.com/WebAssembly/half-precision/blob/main/proposals/half-precision/Overview.md", "phase": 1 }, "instrumentAndTracingTechnology": { "description": "Instrument and Tracing Technology", "url": "https://github.com/WebAssembly/instrument-tracing/blob/main/proposals/instrument-tracing/Overview.md", "phase": "inactive" }, "jitInterface": { "description": "JIT Interface", "url": "https://github.com/WebAssembly/jit-interface/blob/main/proposals/jit-interface/Explainer.md", "phase": 1 }, "jsPrimitiveBuiltins": { "description": "JS Primitive Builtins", "url": "https://github.com/WebAssembly/js-primitive-builtins/blob/main/proposals/js-primitive-builtins/Overview.md", "phase": 2 }, "jsStringBuiltins": { "description": "JS String Builtins", "url": "https://github.com/WebAssembly/js-string-builtins/blob/main/proposals/js-string-builtins/Overview.md", "phase": 5 }, "jspi": { "description": "JS Promise Integration", "url": "https://github.com/WebAssembly/js-promise-integration", "phase": 5 }, "memory64": { "description": "Memory64", "url": "https://github.com/WebAssembly/memory64/blob/master/proposals/memory64/Overview.md", "phase": 5 }, "memoryControl": { "description": "Memory Control", "url": "https://github.com/WebAssembly/memory-control/blob/main/proposals/memory-control/Overview.md", "phase": 1 }, "moreArrayConstructors": { "description": "More Array Constructors", "url": "https://github.com/WebAssembly/more-array-constructors/blob/main/proposals/more-array-constructors/Overview.md", "phase": 1 }, "multibyteArrayAccess": { "description": "Multibyte Array Access", "url": "https://github.com/WebAssembly/multibyte-array-access", "phase": 2 }, "multiMemory": { "description": "Multiple Memories", "url": "https://github.com/WebAssembly/multi-memory/blob/master/proposals/multi-memory/Overview.md", "phase": 5 }, "multiValue": { "description": "Multi-value", "url": "https://github.com/WebAssembly/spec/blob/master/proposals/multi-value/Overview.md", "phase": 5 }, "mutableGlobals": { "description": "Import/Export of Mutable Globals", "url": "https://github.com/WebAssembly/mutable-global/blob/master/proposals/mutable-global/Overview.md", "phase": 5 }, "numericValuesInWat": { "description": "Numeric Values in WAT Data Segments", "url": "https://github.com/WebAssembly/wat-numeric-values/blob/main/proposals/wat-numeric-values/Overview.md", "phase": 2 }, "profiles": { "description": "Profiles", "url": "https://github.com/WebAssembly/profiles/blob/main/proposals/profiles/Overview.md", "phase": 1 }, "referenceTypes": { "description": "Reference Types", "url": "https://github.com/WebAssembly/reference-types/blob/master/proposals/reference-types/Overview.md", "phase": 5 }, "relaxedDeadCodeValidation": { "description": "Relaxed Dead Code Validation", "url": "https://github.com/WebAssembly/relaxed-dead-code-validation/blob/main/proposals/relaxed-dead-code-validation/Overview.md", "phase": 2 }, "relaxedSimd": { "description": "Relaxed SIMD", "url": "https://github.com/WebAssembly/relaxed-simd/tree/main/proposals/relaxed-simd", "phase": 5 }, "roundingVariants": { "description": "Rounding Variants", "url": "https://github.com/WebAssembly/rounding-mode-control/blob/main/proposals/rounding-mode-control/Overview.md", "phase": 2 }, "saturatedFloatToInt": { "description": "Non-trapping float-to-int Conversions", "url": "https://github.com/WebAssembly/spec/blob/master/proposals/nontrapping-float-to-int-conversion/Overview.md", "phase": 5 }, "sharedEverythingThreads": { "description": "Shared-Everything Threads", "url": "https://github.com/WebAssembly/shared-everything-threads/blob/main/proposals/shared-everything-threads/Overview.md", "phase": 1 }, "signExtensions": { "description": "Sign-extension Operators", "url": "https://github.com/WebAssembly/spec/blob/master/proposals/sign-extension-ops/Overview.md", "phase": 5 }, "simd": { "description": "Fixed-width SIMD", "url": "https://github.com/WebAssembly/simd/blob/master/proposals/simd/SIMD.md", "phase": 5 }, "stackSwitching": { "description": "Stack Switching", "url": "https://github.com/WebAssembly/stack-switching/blob/main/proposals/stack-switching/Explainer.md", "phase": 3 }, "stringref": { "description": "Reference-Typed Strings", "url": "https://github.com/WebAssembly/stringref/blob/main/proposals/stringref/Overview.md", "phase": 1 }, "tailCall": { "description": "Tail Call", "url": "https://github.com/WebAssembly/tail-call/blob/master/proposals/tail-call/Overview.md", "phase": 5 }, "threads": { "description": "Threads", "url": "https://github.com/WebAssembly/threads/blob/main-legacy/proposals/threads/Overview.md", "phase": 4 }, "typeImports": { "description": "Type Imports", "url": "https://github.com/WebAssembly/proposal-type-imports/blob/main/proposals/type-imports/Overview.md", "phase": 1 }, "typeReflection": { "description": "Type Reflection for JS API", "url": "https://github.com/WebAssembly/js-types/blob/main/proposals/js-types/Overview.md", "phase": 1 }, "typedFunctionReferences": { "description": "Typed Function References", "url": "https://github.com/WebAssembly/function-references/blob/main/proposals/function-references/Overview.md", "phase": 5 }, "wasmCApi": { "description": "WebAssembly C and C++ API", "url": "https://github.com/WebAssembly/wasm-c-api", "phase": 1 }, "webContentSecurityPolicy": { "description": "Web Content Security Policy", "url": "https://github.com/WebAssembly/content-security-policy/blob/main/proposals/CSP.md", "phase": 5 }, "wideArithmetic": { "description": "Wide Arithmetic", "url": "https://github.com/WebAssembly/wide-arithmetic/blob/main/proposals/wide-arithmetic/Overview.md", "phase": 4 } }, "categories": [ { "name": "Web Browsers", "queryKey": "browsers", "default": true }, { "name": "Standalone Runtimes", "queryKey": "standalones", "default": true }, { "name": "Embedded Runtimes", "queryKey": "embeddeds" }, { "name": "Tools", "queryKey": "tools" } ], "browsers": { "Chrome": { "url": "https://www.google.com/chrome/", "logo": "/images/chrome.svg", "category": "Web Browsers", "features": { "acquireReleaseAtomics": [ "flag", "Requires CLI flag `--js-flags=--experimental-wasm-acquire-release`" ], "bigInt": "85", "branchHinting": "137", "bulkMemory": "75", "compactImportSection": [ "flag", "Requires CLI flag `--js-flags=--wasm-compact-imports`" ], "compilationHints": [ "flag", "Requires CLI flag `--js-flags=--experimental-wasm-compilation-hints`" ], "customAnnotationSyntaxInTheTextFormat": null, "exceptionsFinal": "137", "exceptions": "95", "extendedConst": "114", "gc": "119", "instrumentAndTracingTechnology": [ "flag", "Requires CLI flag `--js-flags=--experimental-wasm-instruction-tracing`" ], "jspi": "137", "jsStringBuiltins": "130", "memory64": "133", "multiMemory": "120", "multiValue": "85", "mutableGlobals": "74", "profiles": null, "referenceTypes": "96", "relaxedSimd": "114", "saturatedFloatToInt": "75", "signExtensions": "74", "simd": "91", "stackSwitching": [ "flag", "Requires flag `chrome://flags/#enable-experimental-webassembly-stack-switching`" ], "tailCall": "112", "threads": "74", "typedFunctionReferences": "119", "typeReflection": [ "flag", "Requires flag `chrome://flags/#enable-experimental-webassembly-features`" ], "webContentSecurityPolicy": "97", "wideArithmetic": [ "flag", "Requires CLI flag `--js-flags=--wasm-wide-arithmetic`" ] } }, "Firefox": { "url": "https://www.mozilla.org/firefox/", "logo": "/images/firefox.svg", "category": "Web Browsers", "features": { "bigInt": "78", "branchHinting": [ "flag", "Enabled in Nightly, requires flag `javascript.options.wasm_branch_hinting` in Beta/Release" ], "bulkMemory": "79", "customAnnotationSyntaxInTheTextFormat": null, "exceptionsFinal": "131", "exceptions": "100", "extendedConst": "112", "gc": "120", "jspi": [ "flag", "Requires flag `javascript.options.wasm_js_promise_integration`" ], "jsStringBuiltins": "134", "memory64": "134", "multiMemory": "125", "multiValue": "78", "mutableGlobals": "61", "profiles": null, "referenceTypes": "79", "relaxedSimd": "145", "saturatedFloatToInt": "64", "signExtensions": "62", "simd": "89", "tailCall": "121", "threads": "79", "typedFunctionReferences": "120", "typeReflection": [ "flag", "Enabled in Nightly, requires flag `--enable-wasm-type-reflections` in Beta/Release" ], "webContentSecurityPolicy": "102", "wideArithmetic": [ "flag", "Enabled in Nightly, requires flag `javascript.options.wasm_wide_arithmetic` in Beta/Release" ] } }, "Safari": { "url": "https://www.apple.com/safari/", "logo": "/images/safari.svg", "category": "Web Browsers", "features": { "bigInt": [ "15", "`wasm-bigint` is supported in desktop Safari since 14.1 and iOS Safari since 14.5; however `BigInt64Array`, which is needed by Emscripten, was released in 15" ], "branchHinting": "16", "bulkMemory": "15", "customAnnotationSyntaxInTheTextFormat": null, "exceptionsFinal": "18.4", "exceptions": "15.2", "extendedConst": "17.4", "gc": "18.2", "jspi": [ "flag", "Supported in Safari Technical Preview 238" ], "jsStringBuiltins": "26.2", "multiValue": "13.1", "mutableGlobals": "13.1", "profiles": null, "referenceTypes": "15", "relaxedSimd": [ "flag", "Requires JavaScriptCore flag `useWebAssemblyRelaxedSIMD`" ], "saturatedFloatToInt": "15", "signExtensions": [ "14.1", "Supported in desktop Safari since 14.1 and iOS Safari since 14.5" ], "simd": "16.4", "tailCall": "18.2", "threads": [ "14.1", "Supported in desktop Safari since 14.1 and iOS Safari since 14.5" ], "typedFunctionReferences": "18", "typeReflection": [ "flag", "Supported in Safari 18.2, only supports `WebAssembly.Module.imports` and `WebAssembly.Module.exports`" ], "webContentSecurityPolicy": "16", "wideArithmetic": [ "flag", "Requires JavaScriptCore flag `useWasmWideArithmetic`" ] } }, "Node.js": { "url": "https://nodejs.org/", "logo": "/images/nodejs.svg", "category": "Standalone Runtimes", "features": { "bigInt": "15.0", "branchHinting": [ "flag", "Requires flag `--experimental-wasm-branch-hinting`" ], "bulkMemory": "12.5", "compilationHints": [ "flag", "Requires flag `--experimental-wasm-compilation-hints`" ], "customAnnotationSyntaxInTheTextFormat": null, "exceptionsFinal": "24.15", "exceptions": "17.0", "extendedConst": "21.0", "gc": "22.0", "instrumentAndTracingTechnology": [ "flag", "Requires flag `--experimental-wasm-instruction-tracing`" ], "jspi":"26.0", "jsStringBuiltins": [ "flag", "Requires flag `--experimental-wasm-imported-strings`" ], "memory64": "24.0", "multiMemory": "22.0", "multiValue": "15.0", "mutableGlobals": "12.0", "referenceTypes": "17.2", "relaxedSimd": "21.0", "saturatedFloatToInt": "12.5", "signExtensions": "12.0", "simd": "16.4", "tailCall": "20.0", "threads": "16.4", "typedFunctionReferences": "22.0", "typeReflection": [ "flag", "Requires flag `--experimental-wasm-type-reflection`" ], "webContentSecurityPolicy": null, "wideArithmetic": [ "flag", "Requires flag `--wasm-wide-arithmetic`" ] } }, "Deno": { "url": "https://deno.com/", "logo": "/images/deno.svg", "category": "Standalone Runtimes", "features": { "bigInt": "1.1.2", "branchHinting": "2.3.2", "bulkMemory": "0.4", "compilationHints": [ "flag", "Requires flag `--v8-flags=--experimental-wasm-compilation-hints`" ], "customAnnotationSyntaxInTheTextFormat": null, "esmIntegration": "2.1", "exceptionsFinal": "2.3.2", "exceptions": "1.16", "extendedConst": "1.33", "gc": "1.38", "instrumentAndTracingTechnology": [ "flag", "Requires flag `--v8-flags=--experimental-wasm-instruction-tracing`" ], "jspi": "2.3.2", "jsStringBuiltins": "2.1", "memory64": "2.2", "multiMemory": "1.38", "multiValue": "1.3.2", "mutableGlobals": "0.1", "referenceTypes": "1.16", "relaxedSimd": "1.33", "saturatedFloatToInt": "0.4", "signExtensions": "0.1", "simd": "1.9", "tailCall": "1.32", "threads": "1.9", "typedFunctionReferences": "1.38", "typeReflection": [ "flag", "Requires flag `--v8-flags=--experimental-wasm-type-reflection`" ], "webContentSecurityPolicy": null, "wideArithmetic": [ "flag", "Requires flag `--v8-flags=--wasm-wide-arithmetic`" ] } }, "GraalWasm": { "url": "https://www.graalvm.org/webassembly/", "logo": "/images/graalvm.svg", "category": "Standalone Runtimes", "features": { "bigInt": "21.3", "bulkMemory": "23.0", "customAnnotationSyntaxInTheTextFormat": null, "exceptions": [ "flag", "Requires flag `--wasm.LegacyExceptions=true`" ], "exceptionsFinal": "25.1", "extendedConst": "25.1", "gc": "25.1", "memory64": ["flag", "Requires flag `--wasm.Memory64=true`"], "multiMemory": "25.1", "multiValue": "22.3", "mutableGlobals": "21.3", "referenceTypes": "23.0", "relaxedSimd": "25.1", "saturatedFloatToInt": "22.3", "signExtensions": "22.3", "simd": "24.1", "threads": ["flag", "Requires flag `--wasm.Threads=true`"], "typedFunctionReferences": "25.1", "webContentSecurityPolicy": null } }, "Endive": { "url": "https://endive.run/", "logo": "/images/endive.png", "category": "Standalone Runtimes", "features": { "bigInt": null, "bulkMemory": "1.0", "customAnnotationSyntaxInTheTextFormat": null, "extendedConst": "1.0", "exceptionsFinal": "1.0", "exceptions": null, "gc": "1.0", "memory64": null, "multiMemory": "1.0", "multiValue": "1.0", "mutableGlobals": "1.0", "referenceTypes": "1.0", "saturatedFloatToInt": "1.0", "signExtensions": "1.0", "simd": "1.0", "threads": "1.0", "tailCall": "1.0", "typedFunctionReferences": "1.0", "webContentSecurityPolicy": null } }, "Wasmtime": { "url": "https://wasmtime.dev/", "logo": "/images/bca.svg", "category": "Standalone Runtimes", "features": { "bigInt": null, "branchHinting": ["flag", "Requires flag `--wasm=branch-hinting`"], "bulkMemory": "0.20", "customAnnotationSyntaxInTheTextFormat": true, "customPageSizes": ["flag", "Requires flag `--wasm=custom-page-sizes`"], "esmIntegration": null, "exceptionsFinal": "47", "extendedConst": "25", "gc": "47", "jspi": null, "jsStringBuiltins": null, "memory64": "30", "multiMemory": "15", "multiValue": "0.17", "mutableGlobals": true, "profiles": true, "referenceTypes": "0.20", "relaxedSimd": "15", "saturatedFloatToInt": true, "signExtensions": true, "simd": "0.33", "tailCall": [ "22", "Enabled by default when using the Cranelift backend, the s390x architecture supports it since 24" ], "threads": "15", "typedFunctionReferences": "47", "typeReflection": null, "webContentSecurityPolicy": null, "wideArithmetic": ["flag", "Requires flag `--wasm=wide-arithmetic`"] } }, "Wasmer": { "url": "https://wasmer.io/", "logo": "/images/wasmer.svg", "category": "Standalone Runtimes", "features": { "bigInt": null, "bulkMemory": "1.0", "customAnnotationSyntaxInTheTextFormat": true, "esmIntegration": null, "jspi": null, "jsStringBuiltins": null, "referenceTypes": "2.0", "threads": "4.0", "exceptionsFinal": "6.0", "extendedConst": "7.1", "multiMemory": "7.3", "multiValue": "1.0", "mutableGlobals": "0.7", "relaxedSimd": "7.1", "saturatedFloatToInt": true, "signExtensions": true, "simd": "2.0", "stackSwitching": "7.0", "tailCall": "7.1", "typeReflection": "2.0", "webContentSecurityPolicy": null, "wideArithmetic": "7.1" } }, "Wasm3": { "url": "https://github.com/wasm3/wasm3", "logo": "/images/wasm3.png", "category": "Standalone Runtimes", "features": { "bigInt": null, "branchHinting": null, "bulkMemory": "0.5.1", "compactImportSection": "0.9.0", "compilationHints": null, "customAnnotationSyntaxInTheTextFormat": null, "customDescriptors": null, "customPageSizes": "0.9.0", "esmIntegration": null, "exceptionsFinal": "0.9.1", "extendedConst": "0.9.0", "gc": false, "jsPrimitiveBuiltins": null, "jsStringBuiltins": null, "jspi": null, "memory64": "0.9.1", "multiMemory": "0.9.1", "multiValue": "0.5.1", "mutableGlobals": "0.5.0", "numericValuesInWat": null, "profiles": null, "referenceTypes": "0.9.0", "saturatedFloatToInt": "0.5.0", "signExtensions": "0.5.0", "simd": false, "stackSwitching": false, "threads": false, "tailCall": "0.9.0", "typedFunctionReferences": ["flag", "Compile with `d_m3HasTypedRefs` set to 1"], "typeReflection": null, "webContentSecurityPolicy": null, "wideArithmetic": false } }, "Wasmi": { "url": "https://github.com/wasmi-labs/wasmi/", "logo": "/images/wasmi.png", "category": "Standalone Runtimes", "features": { "bigInt": null, "bulkMemory": "0.24", "customAnnotationSyntaxInTheTextFormat": true, "customPageSizes": "0.41", "esmIntegration": null, "exceptionsFinal": false, "extendedConst": "0.29", "gc": false, "jspi": null, "jsStringBuiltins": null, "memory64": "0.41", "multiMemory": "0.37", "multiValue": "0.14", "mutableGlobals": "0.14", "profiles": "2.0.0", "referenceTypes": "0.24", "relaxedSimd": "0.44", "saturatedFloatToInt": "0.14", "signExtensions": "0.14", "simd": "0.43", "tailCall": "0.28", "threads": null, "typedFunctionReferences": false, "typeReflection": null, "webContentSecurityPolicy": null, "wideArithmetic": "0.42" } }, "wizard": { "url": "https://github.com/titzer/wizard-engine", "logo": "/images/wizard.svg", "category": "Standalone Runtimes", "features": { "bigInt": null, "bulkMemory": "25", "customAnnotationSyntaxInTheTextFormat": null, "exceptionsFinal": "24", "exceptions": "24", "extendedConst": "25", "esmIntegration": null, "gc": "24", "jspi": null, "jsStringBuiltins": null, "memory64": "25", "tailCall": "25", "customPageSizes": ["flag", "Requires flag `--ext:custom-page-sizes`"], "multiValue": "21", "multiMemory": "24", "mutableGlobals": "21", "referenceTypes": "21", "relaxedSimd": "25", "saturatedFloatToInt": "21", "signExtensions": "21", "simd": "23", "stackSwitching": ["flag", "Requires flag `--ext:stack-switching`"], "threads": ["flag", "Requires flag `--ext:threads`"], "typedFunctionReferences": "24", "typeReflection": null, "webContentSecurityPolicy": null, "wideArithmetic": ["flag", "Requires flag `--ext:wide-arithmetic`"] } }, "wazero": { "url": "https://wazero.io", "logo": "/images/wazero.svg", "logoClassName": "invert-in-dark-theme", "category": "Standalone Runtimes", "features": { "bigInt": null, "bulkMemory": true, "customAnnotationSyntaxInTheTextFormat": null, "exceptionsFinal": "flag", "exceptions": false, "extendedConst": "flag", "esmIntegration": null, "gc": false, "jspi": null, "jsStringBuiltins": null, "memory64": false, "tailCall": "flag", "customPageSizes": null, "multiValue": true, "multiMemory": false, "mutableGlobals": true, "referenceTypes": true, "relaxedSimd": false, "saturatedFloatToInt": true, "signExtensions": true, "simd": true, "stackSwitching": false, "threads": "flag", "typedFunctionReferences": "flag", "typeReflection": null, "webContentSecurityPolicy": null } }, "zwasm": { "url": "https://github.com/zwasm/zwasm", "logo": "/images/zwasm.svg", "category": "Standalone Runtimes", "features": { "bigInt": null, "bulkMemory": true, "componentModel": [true, "WASI 0.2 command components (wasi:cli/run) execute end-to-end on both engines"], "customAnnotationSyntaxInTheTextFormat": null, "customPageSizes": true, "esmIntegration": null, "exceptions": false, "exceptionsFinal": true, "extendedConst": true, "gc": true, "jspi": null, "jsStringBuiltins": null, "memory64": true, "multiMemory": [true, "Interpreter engine only; the JIT rejects multi-memory modules and the default auto mode falls back to the interpreter"], "multiValue": true, "mutableGlobals": true, "referenceTypes": true, "relaxedSimd": [true, "JIT engine only; the interpreter accepts SIMD modules but traps when a vector instruction executes (the default auto mode runs them on the JIT)"], "saturatedFloatToInt": true, "signExtensions": true, "simd": [true, "JIT engine only; the interpreter accepts SIMD modules but traps when a vector instruction executes (the default auto mode runs them on the JIT)"], "stackSwitching": false, "tailCall": true, "threads": [true, "Single-threaded host: atomics, shared memories, and wait/notify are implemented and validated; wait times out and notify returns 0"], "typedFunctionReferences": true, "typeReflection": null, "webContentSecurityPolicy": null, "wideArithmetic": true } }, "wasm2c": { "url": "https://github.com/WebAssembly/wabt", "logo": "/images/wasm2c.svg", "category": "Standalone Runtimes", "features": { "bigInt": null, "bulkMemory": "1.0.30", "customAnnotationSyntaxInTheTextFormat": null, "exceptionsFinal": ["flag", "Requires flag `--enable-exceptions`"], "exceptions": ["flag", "Requires flag `--enable-exceptions`"], "extendedConst": ["flag", "Requires flag `--enable-extended-const`"], "esmIntegration": null, "jspi": null, "jsStringBuiltins": null, "memory64": ["flag", "Requires flag `--enable-memory64`"], "multiMemory": ["flag", "Requires flag `--enable-multi-memory`"], "tailCall": ["flag", "Requires flag `--enable-tail-call`"], "customPageSizes": [ "flag", "Requires flag `--enable-custom-page-sizes`" ], "multiValue": "1.0.24", "mutableGlobals": "1.0.1", "referenceTypes": "1.0.31", "saturatedFloatToInt": "1.0.24", "signExtensions": "1.0.24", "simd": "1.0.33", "typeReflection": null, "webContentSecurityPolicy": null } }, "Owi": { "url": "https://github.com/ocamlpro/owi", "logo": "/images/owi.webp", "logoClassName": "rounded", "category": ["Tools", "Standalone Runtimes"], "features": { "bigInt": null, "bulkMemory": true, "customAnnotationSyntaxInTheTextFormat": true, "exceptionsFinal": false, "exceptions": false, "extendedConst": true, "esmIntegration": null, "gc": false, "jspi": null, "jsStringBuiltins": null, "memory64": false, "tailCall": true, "customPageSizes": false, "multiValue": true, "multiMemory": true, "mutableGlobals": true, "referenceTypes": true, "relaxedSimd": false, "saturatedFloatToInt": true, "signExtensions": true, "simd": true, "stackSwitching": false, "threads": false, "typedFunctionReferences": true, "typeReflection": false, "webContentSecurityPolicy": null } }, "Binaryen": { "url": "https://github.com/WebAssembly/binaryen", "logo": "/images/binaryen.svg", "category": "Tools", "features": { "acquireReleaseAtomics": true, "bigInt": true, "branchHinting": true, "bulkMemory": true, "compilationHints": true, "customAnnotationSyntaxInTheTextFormat": true, "customDescriptors": true, "exceptionsFinal": true, "exceptions": true, "extendedConst": true, "extendedNameSection": true, "esmIntegration": null, "gc": true, "jspi": true, "jsStringBuiltins": true, "memory64": true, "tailCall": true, "customPageSizes": true, "multiValue": true, "multiMemory": true, "mutableGlobals": true, "referenceTypes": true, "relaxedSimd": true, "saturatedFloatToInt": true, "signExtensions": true, "simd": true, "stackSwitching": true, "stringref": true, "threads": true, "typedFunctionReferences": true, "typeReflection": null, "webContentSecurityPolicy": null } }, "wasm-language-tools": { "url": "https://github.com/g-plane/wasm-language-tools", "logo": "/images/wasm-language-tools.svg", "category": "Tools", "features": { "bigInt": null, "branchHinting": null, "bulkMemory": true, "compactImportSection": "0.11.0", "compilationHints": "0.9.0", "customAnnotationSyntaxInTheTextFormat": "0.7.0", "customPageSizes": "0.8.0", "esmIntegration": null, "exceptionsFinal": "0.7.0", "extendedConst": "0.7.0", "extendedNameSection": null, "gc": "0.4.0", "jsPrimitiveBuiltins": null, "jsStringBuiltins": null, "jspi": null, "memory64": "0.7.0", "multiMemory": "0.4.0", "multiValue": "0.1.0", "mutableGlobals": "0.1.0", "referenceTypes": "0.1.0", "relaxedSimd": "0.7.0", "saturatedFloatToInt": "0.3.0", "signExtensions": "0.3.0", "simd": true, "stackSwitching": "0.10.0", "tailCall": true, "threads": "0.8.0", "typeReflection": null, "typedFunctionReferences": "0.4.0", "webContentSecurityPolicy": null, "wideArithmetic": "0.8.0" } }, "wasmedge": { "url": "https://github.com/WasmEdge/WasmEdge", "logo": "/images/wasmedge.svg", "category": "Standalone Runtimes", "features": { "bigInt": null, "branchHinting": null, "bulkMemory": "0.7.1", "customAnnotationSyntaxInTheTextFormat": false, "customPageSizes": false, "esmIntegration": false, "exceptionsFinal": "0.14.0", "extendedConst": "0.10.0", "gc": "0.14.0", "jsPrimitiveBuiltins": null, "jsStringBuiltins": null, "jspi": null, "memory64": false, "multiMemory": "0.9.1", "multiValue": "0.6.2", "mutableGlobals": "0.2.0", "referenceTypes": "0.7.1", "relaxedSimd": "0.14.1", "saturatedFloatToInt": "0.6.2", "signExtensions": "0.6.2", "simd": "0.7.2", "tailCall": "0.10.0", "threads": "0.10.1", "typeReflection": false, "typedFunctionReferences": "0.14.0", "webContentSecurityPolicy": null, "wideArithmetic": false } }, "Soup": { "url": "https://github.com/calamity-inc/Soup/tree/senpai/CLI#soup-cli", "logo": "/images/soup.png", "category": "Standalone Runtimes", "features": { "bulkMemory": true, "multiValue": true, "mutableGlobals": true, "referenceTypes": true, "saturatedFloatToInt": true, "signExtensions": true, "simd": ["flag", "Compile with `SOUP_WASM_SIMD` set to `true`"], "memory64": true, "multiMemory": ["flag", "Compile with `SOUP_WASM_MULTI_MEMORY` set to `true`"], "extendedConst": ["flag", "Compile with `SOUP_WASM_EXTENDED_CONST` set to `true`"], "tailCall": ["flag", "Compile with `SOUP_WASM_TAIL_CALL` set to `true`"], "exceptionsFinal": ["flag", "Compile with `SOUP_WASM_EXCEPTIONS` set to `true`"], "bigInt": null, "branchHinting": null, "customAnnotationSyntaxInTheTextFormat": null, "webContentSecurityPolicy": null, "esmIntegration": null, "typeReflection": null, "customPageSizes": ["flag", "Compile with `SOUP_WASM_CUSTOM_PAGE_SIZES` set to `true`"], "compilationHints": null, "numericValuesInWat": null, "relaxedDeadCodeValidation": null } }, "watr": { "url": "https://github.com/dy/watr", "logo": "/images/watr.svg", "category": "Tools", "features": { "acquireReleaseAtomics": "5.9.0", "bigInt": true, "branchHinting": true, "bulkMemory": true, "compactImportSection": true, "compilationHints": null, "customAnnotationSyntaxInTheTextFormat": true, "customDescriptors": true, "customPageSizes": true, "esmIntegration": null, "exceptions": false, "exceptionsFinal": true, "extendedConst": true, "extendedNameSection": null, "gc": true, "halfPrecision": "5.8.0", "jsPrimitiveBuiltins": null, "jsStringBuiltins": true, "jspi": null, "memory64": true, "multiMemory": true, "multiValue": true, "mutableGlobals": true, "numericValuesInWat": true, "referenceTypes": true, "relaxedSimd": true, "roundingVariants": "4.5.0", "saturatedFloatToInt": true, "signExtensions": true, "simd": true, "stackSwitching": true, "stringref": "4.5.0", "tailCall": true, "threads": true, "typedFunctionReferences": true, "typeReflection": null, "webContentSecurityPolicy": null, "wideArithmetic": true } }, "Chasm": { "url": "https://github.com/CharlieTap/chasm", "logo": "/images/chasm.svg", "category": "Standalone Runtimes", "features": { "bigInt": null, "bulkMemory": true, "customAnnotationSyntaxInTheTextFormat": null, "esmIntegration": null, "exceptionsFinal": true, "extendedConst": true, "extendedNameSection": true, "gc": true, "jspi": null, "jsStringBuiltins": null, "memory64": false, "multiMemory": true, "multiValue": true, "mutableGlobals": true, "referenceTypes": true, "relaxedSimd": false, "saturatedFloatToInt": true, "signExtensions": true, "simd": false, "tailCall": true, "typedFunctionReferences": true, "typeReflection": null, "webContentSecurityPolicy": null, "wideArithmetic": true } }, "Hexana": { "url": "https://plugins.jetbrains.com/plugin/29090-hexana", "logo": "/images/hexana.avif", "category": "Tools", "features": { "branchHinting": false, "bulkMemory": true, "compactImportSection": false, "componentModel": [true, "Preamble and 10/13 top-level sections decoded; canon, value, and component-level start are stubs; embedded component-type custom section not yet extracted."], "customPageSizes": false, "exceptions": true, "exceptionsFinal": true, "extendedConst": true, "extendedNameSection": true, "gc": true, "memory64": [true, "64-bit limit flags and memidx-carrying memory ops decoded; not separately validated against the rest of the proposal scope."], "multiValue": [true, "Type-index multi-value blocks decoded; empty block-type 0x40 is misdecoded as a reference type (known bug)."], "mutableGlobals": true, "referenceTypes": true, "relaxedSimd": true, "saturatedFloatToInt": true, "signExtensions": true, "simd": true, "stackSwitching": false, "tailCall": true, "threads": [true, "Full 0xFE atomic opcode family; shared-memory limit flag 0x03 parsed; open-shared flag 0x02 not yet parsed."], "typedFunctionReferences": true, "wideArithmetic": false } } } }