Using wasm-pack
This tool was created by the Rust / Wasm Working Group for building WebAssembly applications. It supports packaging code into npm
modules and has an accompanying Webpack plugin for easy integration with existing JavaScript applications. More information is given in the wasm-pack
documentation.
wasm-pack
requires that you set the crate-type explicitly to include cdylib
:
[lib]
crate-type = ["rlib", "cdylib"]
Install
cargo install wasm-pack
Build
This command will produce a bundle in the ./pkg
directory with your app's compiled WebAssembly
along with a JavaScript wrapper which can be used to start your application.
wasm-pack build --target web
Bundle
For more information on rollup.js visit this guide.
rollup ./main.js --format iife --file ./pkg/bundle.js
When using a bundler like rollup.js you can omit --target web
.
Serve
Feel free to use your preferred server. Here we use a simple Python server to serve the built app.
python -m http.server 8000
If you don't have Python installed, you can install and use the simple-http-server
crate instead.