diff options
author | Andy Hayden <andyhayden1@gmail.com> | 2019-11-15 09:42:40 -0800 |
---|---|---|
committer | Ry Dahl <ry@tinyclouds.org> | 2019-11-15 12:42:40 -0500 |
commit | 411f53f7bbff54ff8b16f4d4c0f6d2ef573926f1 (patch) | |
tree | fee5ab90e104de2c4ee28ea9b90e3db95bc4b458 | |
parent | 306ab015e8d5601764c7c505cd6bc90361cd4504 (diff) |
Add wasm example to manual (#3353)
-rw-r--r-- | std/manual.md | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/std/manual.md b/std/manual.md index f5aed463c..affcfd395 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. + +<!-- prettier-ignore-start --> +```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()); +``` +<!-- prettier-ignore-end --> + +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 |