wasm-bindgen/examples
Alex Crichton a2aa28e4d3 Add a #[wasm_bindgen(start)] attribute
This commit adds a new attribute to `#[wasm_bindgen]`: `start`. The
`start` attribute can be used to indicate that a function should be
executed when the module is loaded, configuring the `start` function of
the wasm executable. While this doesn't necessarily literally configure
the `start` section, it does its best!

Only one crate in a crate graph may indicate `#[wasm_bindgen(start)]`,
so it's not recommended to be used in libraries but only end-user
applications. Currently this still must be used with the `crate-type =
["cdylib"]` annotation in `Cargo.toml`.

The implementation here is somewhat tricky because of the circular
dependency between our generated JS and the wasm file that we emit. This
circular dependency makes running initialization routines (like the
`start` shim) particularly fraught with complications because one may
need to run before the other but bundlers may not necessarily respect
it. Workarounds have been implemented for various emission strategies,
for example calling the start function directly after exports are wired
up with `--no-modules` and otherwise working around what appears to be
a Webpack bug with initializers running in a different order than we'd
like. In any case, this in theory doesn't show up to the end user!

Closes #74
2018-11-28 22:11:15 -08:00
..
add Bump to 0.2.28 2018-11-12 09:28:01 -08:00
canvas Add a #[wasm_bindgen(start)] attribute 2018-11-28 22:11:15 -08:00
char Bump to 0.2.28 2018-11-12 09:28:01 -08:00
closures Add a #[wasm_bindgen(start)] attribute 2018-11-28 22:11:15 -08:00
console_log Add a #[wasm_bindgen(start)] attribute 2018-11-28 22:11:15 -08:00
dom Add a #[wasm_bindgen(start)] attribute 2018-11-28 22:11:15 -08:00
duck-typed-interfaces Bump to 0.2.28 2018-11-12 09:28:01 -08:00
fetch Run rustfmt over everything 2018-11-27 12:07:59 -08:00
guide-supported-types-examples Bump to 0.2.28 2018-11-12 09:28:01 -08:00
hello_world Bump to 0.2.28 2018-11-12 09:28:01 -08:00
import_js Add a #[wasm_bindgen(start)] attribute 2018-11-28 22:11:15 -08:00
julia_set Bump to 0.2.28 2018-11-12 09:28:01 -08:00
no_modules Add a #[wasm_bindgen(start)] attribute 2018-11-28 22:11:15 -08:00
paint Add a #[wasm_bindgen(start)] attribute 2018-11-28 22:11:15 -08:00
performance Add a #[wasm_bindgen(start)] attribute 2018-11-28 22:11:15 -08:00
raytrace-parallel Run rustfmt over everything 2018-11-27 12:07:59 -08:00
todomvc Remove compiler warnings in todo example, simplify usage of elements into element.rs and fix a bug with focus not working on edit. 2018-11-25 00:29:28 +00:00
wasm2js Bump to 0.2.28 2018-11-12 09:28:01 -08:00
wasm-in-wasm Add a #[wasm_bindgen(start)] attribute 2018-11-28 22:11:15 -08:00
webaudio Run rustfmt over everything 2018-11-27 12:07:59 -08:00
webgl Add a #[wasm_bindgen(start)] attribute 2018-11-28 22:11:15 -08:00
README.md Reorganize and rewrite examples 2018-09-20 16:45:30 -07:00

Examples

This directory contains a number of Cargo projects that are all examples of how to use wasm-bindgen in various contexts. More documentation can be found online