Skip to content

Instantly share code, notes, and snippets.

@spicyjack
Created September 13, 2018 23:15
Show Gist options
  • Select an option

  • Save spicyjack/e22d5cabc71abc8a9c6b8b70142c56b1 to your computer and use it in GitHub Desktop.

Select an option

Save spicyjack/e22d5cabc71abc8a9c6b8b70142c56b1 to your computer and use it in GitHub Desktop.
RustWASM workflow example
cd $WASM_GOL`
  • wasm-pack init
    • This creates a directory called ${WASM_GOL}/pkg, with the correct JavaScript bits needed to interact with a Rust WASM application
    • The JavaScript bits will need to be regenerated via wasm-pack init every time you make changes to the Rust code
  • Create the web app from a template
    • cd $WASM_GOL
    • npm init wasm-app www
  • Install dependencies
    • cd ${WASM_GOL}/www
    • npm install
  • Create local (non-NPM links)
    • cd ${WASM_GOL}/pkg
    • npm link
  • Create links to the local non-NPM packages
    • cd ${WASM_GOL}/www
    • npm link wasm-game-of-life
  • Edit ${WASM_GOL}/www/index.js, and change the name of the package to use
    • cd ${WASM_GOL}/www
    • vim index.js
    • Do s/hello-wasm-pack/wasm-game-of-life/ in the line import * as wasm from "hello-wasm-pack"
  • Start a dev web server in the application directory
    • cd ${WASM_GOL}/www
    • npm run start
      • The dev web server will pick an unused port on the local machine and start serving web pages via HTTP
      • Look for the server URI in the log output when starting the dev web server
  • Make changes to the source as needed, then rerun the wasm-pack command again
    • cd $WASM_GOL
    • wasm-pack init
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment