wasm-bindgen/examples
Alex Crichton 02b7021053 Leverage new rustc wasm features
This commit leverages two new attributes in the Rust compiler,
`#[wasm_custom_section]` and `#[wasm_import_module]`. These two attributes allow
removing a lot of hacks found in wasm-bindgen and also allows removing the
requirement of `wasm-opt` to remove the unused data sections.

This does require two new nightly features but we already required the
`proc_macro` nightly feature and these will hopefully be stabilized before that
feature!
2018-03-24 10:36:19 -07:00
..
console_log Leverage new rustc wasm features 2018-03-24 10:36:19 -07:00
dom Leverage new rustc wasm features 2018-03-24 10:36:19 -07:00
hello_world Leverage new rustc wasm features 2018-03-24 10:36:19 -07:00
math Leverage new rustc wasm features 2018-03-24 10:36:19 -07:00
performance Leverage new rustc wasm features 2018-03-24 10:36:19 -07:00
smorgasboard Leverage new rustc wasm features 2018-03-24 10:36:19 -07:00
wasm-in-wasm Leverage new rustc wasm features 2018-03-24 10:36:19 -07:00
README.md Add an example of namespaced APIs 2018-03-22 17:39:48 -07:00

Examples

This directory contains a number of examples of the #[wasm_bindgen] macro and how to display them in the browser. Each directory should contain a build.sh which assembles all the relevant files, and then if you open up index.html in a web browser you should be able to see everything in action!

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