19 releases

0.0.18 Dec 28, 2020
0.0.17 Dec 28, 2020
0.0.15 Nov 28, 2020

#525 in Cargo plugins

MIT/Apache

20KB
493 lines

cargo-webassembly

This cargo extension is for developing front end applications in WebAssembly. Use it's subcommands to generate Rust projects ready to develop WebAssembly immediately, and use the tool to run a local dev server to see it while you work.

This project is currently beta, but totally functional! Next steps include:

  • cleaning up the code to use less unwrap
  • use a better open url library (the current one has some weird behavior).
  • support project file watching and recompiling

First make sure you install Rust and have the wasm32 toolchain installed:

rustup target add wasm32-unknown-unknown

Install with the following command:

cargo install cargo-webassembly

Create a new project

cargo webassembly new my_project

This will initialize a Rust WebAssembly project completely setup to run in the browser.

Run your project

Go into your projects root directory (e.g. cd my_project)

cargo webassembly run

This will compile and start a server by default on port 8080, you can change the port with the -p option.

This server is setup for single-page apps where all non-static file routes redirect to the root index.html.

Building your project

cargo webassembly build

This command will just compile your WebAssembly and place everything you need for your web app in the dist folder.

Next steps

Check out more ways to interact with the browser using the web package!

Here's some cool examples:

License

This project is licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in cargo-webassembly by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Dependencies

~12–28MB
~354K SLoC