diff --git a/std/manual.md b/std/manual.md index f5aed463cdfb3a103e45dce7ba22c351ea4645c0..affcfd395956823f672e94d1e78012d7efedfd18 100644 --- a/std/manual.md +++ b/std/manual.md @@ -951,6 +951,33 @@ for await (const req of serve(":8000")) { $ deno run --importmap=import_map.json hello_server.ts ``` +## WASM support + +Deno can execute [wasm](https://webassembly.org/) binaries. + + +```js +const wasmCode = new Uint8Array([ + 0, 97, 115, 109, 1, 0, 0, 0, 1, 133, 128, 128, 128, 0, 1, 96, 0, 1, 127, + 3, 130, 128, 128, 128, 0, 1, 0, 4, 132, 128, 128, 128, 0, 1, 112, 0, 0, + 5, 131, 128, 128, 128, 0, 1, 0, 1, 6, 129, 128, 128, 128, 0, 0, 7, 145, + 128, 128, 128, 0, 2, 6, 109, 101, 109, 111, 114, 121, 2, 0, 4, 109, 97, + 105, 110, 0, 0, 10, 138, 128, 128, 128, 0, 1, 132, 128, 128, 128, 0, 0, + 65, 42, 11 +]); +const wasmModule = new WebAssembly.Module(wasmCode); +const wasmInstance = new WebAssembly.Instance(wasmModule); +console.log(wasmInstance.exports.main().toString()); +``` + + +WASM files can also be loaded using imports: + +```ts +import { fib } from "./fib.wasm"; +console.log(fib(20)); +``` + ## Program lifecycle Deno supports browser compatible lifecycle events: `load` and `unload`. You can