/rust_wasm_template

A template for jump-starting Rust and WebAssembly projects!

Primary LanguageShellApache License 2.0Apache-2.0

Rust 🦀 and WebAssembly 🕸 Template 🏗

Build Status

This is a template to jump-start your Rust and WebAssembly project and let you hit the ground running.

🛍 What's Inside?

  • ✔ The latest wasm-bindgen for light and seamless bidirectional communication between Rust and JavaScript. Import JavaScript things into Rust and export Rust things to JavaScript.

  • ✔ Boilerplate for builds, optimizing, and post-processing:

    • ✔ Generates the JS interface to your .wasm binary with the appropriate wasm-bindgen invocation.

    • ✔ Runs wasm-opt to shrink the .wasm binary's code size and also speed it up at runtime.

    • ✔ Bundles your JS with Webpack.

  • ✔ Serve your .wasm and JS locally with Webpack's dev-server.

  • ✔ Better debugging with Rust panics forwarded to console.error.

  • ✔ Optionally use wee_alloc as the global allocator, to help keep your code size footprint small.

  • ✔ Boilerplate for writing #[test]s and #[bench]es for the native target.

  • ✔ Travis CI integration already set up. Make sure you never break your tests or your WebAssembly builds.

🤸 Using this Template

Clone the template repository:

git clone https://github.com/rustwasm/rust_wasm_template.git my_awesome_project

Replace all the references to the rustwasm github organization with your github username or organization:

git ls-files | xargs sed -i -e 's/rustwasm/my_github_username/g'

Replace all the references to the rust_wasm_template and replace them with my_awesome_project or whatever your awesome project is called:

git ls-files | xargs sed -i -e 's/rust_wasm_template/my_awesome_project/g'

For more details on building and testing, see CONTRIBUTING.md.

Enabling Travis CI

The configuration is 100% configured, and all you need to do is enable CI for the repo on your profile page.