Skip to content

Trivially run wasm applications and examples in the browser

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

setzer22/cargo-run-wasm

 
 

Repository files navigation

cargo run-wasm

Crates.io Docs dependency status

Allows running wasm applications and examples as simply as:

cargo run-wasm crate_name

or

cargo run-wasm --example example_name

In the background it:

  1. Compiles the rust project to wasm
  2. Runs wasm-bindgen
  3. Generates an index.html that runs the wasm.
  4. Launches a tiny webserver to serve index.html + your wasm

Setup

  1. Setup your wasm runnable project as a crate within a cargo workspace
  2. Create a crate in the workspace named run-wasm with:

Cargo.toml:

[package]
name = "run-wasm"
version = "0.1.0"
edition = "2021"

[dependencies]
cargo-run-wasm = "0.1.0"

main.rs:

fn main() {
    cargo_run_wasm::run_wasm();
}
  1. Create a .cargo/config file containing:
[alias]
run-wasm = "run --release --package run-wasm --"
  1. Thats it, you can now run the commands described earlier. You can also run cargo run-wasm --help to view all the possible flags.

Advantages over an equivalent bash/powershell/bat script

  • cross platform
  • 0 external dependencies
  • better UX + more robust than anything hacked together with bash/powershell/bat
  • wasm-bindgen-cli version is always in sync with wasm-bindgen version because cargo update updates both of them at the same time thanks to being in the same workspace

cargo custom command

cargo-run-wasm is not available as a cargo custom command as that would cause:

  • issues with mismatches between wasm-bindgen versions
  • issues with keeping a stable interface with the wasm app
  • gives the idea that the command is compatible with every project that uses wasm which is not the case.

License

Licensed under either of

at your option.

About

Trivially run wasm applications and examples in the browser

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 94.2%
  • HTML 5.8%