Skip to content

Commit

Permalink
Add wasm example to manual (#3353)
Browse files Browse the repository at this point in the history
  • Loading branch information
hayd authored and ry committed Nov 15, 2019
1 parent 306ab01 commit 411f53f
Showing 1 changed file with 27 additions and 0 deletions.
27 changes: 27 additions & 0 deletions std/manual.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 411f53f

Please sign in to comment.