mirror of
https://github.com/fluencelabs/wasm-bindgen
synced 2025-05-07 11:32:16 +00:00
This commit adds an example of executing the `wasm2asm` tool to generate asm.js output instead of WebAssembly. This is often useful when supporting older browsers, such as IE 11, that doesn't have native support for WebAssembly.
38 lines
1.8 KiB
Markdown
38 lines
1.8 KiB
Markdown
# Examples
|
|
|
|
This directory contains a number of examples of the `#[wasm_bindgen]` macro and
|
|
how to display them in the browser. Each directory contains a README with a link
|
|
to https://webassembly.studio so you can also explore the example online
|
|
(apologies if they're out of sync!), and each directory also contains a
|
|
`build.sh` which assembles all the relevant files locally. If you open up
|
|
`index.html` in a web browser you should be able to see everything in action
|
|
when using `build.sh`!
|
|
|
|
The examples here are:
|
|
|
|
* `hello_world` - the "hello world" of `#[wasm_bindgen]`, aka throwing up a
|
|
dialog greeting you
|
|
* `console_log` - a showcase of `#[wasm_bindgen]` importing classes and how to
|
|
bind `console.log`
|
|
* `math` - like `console_log` except showing how to import Math-related
|
|
functions instead
|
|
* `dom` - an example of accessing the global `document` object and appending
|
|
HTML to it
|
|
* `smorgasboard` - a bunch of features all thrown into one, showing off the
|
|
various capabilities of the `#[wasm_bindgen]` macro and what you can do with
|
|
it from JS
|
|
* `performance` - how to import APIs like `performance.now()` and time various
|
|
operations in Rust
|
|
* `wasm-in-wasm` - how to interact with namespaced APIs like
|
|
`WebAssembly.Module` and shows off creation of a WebAssembly module from Rust
|
|
* `closures` - an example of how to invoke functions like `setInterval` or use
|
|
the `onclick` property in conjunction with closures.
|
|
* `no_modules` - an example of how to use the `--no-modules` flag to
|
|
the `wasm-bindgen` CLI tool
|
|
* `add` - an example of generating a tiny wasm binary, one that only adds two
|
|
numbers.
|
|
* `asm.js` - an example of using the `wasm2asm` tool from [binaryen] to convert
|
|
the generated WebAssembly to normal JS
|
|
|
|
[binaryen]: https://github.com/WebAssembly/binaryen
|