Try it out here
This is the tutorial from the Rust and WebAssembly book. I'm using Svelte for the frontend.
Assuming a fresh install (no node, no rust)
- Clone the repo.
cd
into repo- Install nvm, close and reopen terminal after install.
- Run
nvm install --lts
- To verify install run
node -v
// should output something similar to
v16.13.0
- This monorepo uses yarn workspaces under the hood. Install
yarn
by running
npm i -g yarn cross-env vite tailwind
- Install rustup + rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
// follow installation prompts, close and reopen terminal after install.
- Install wasm-pack
curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
- If in Ubuntu or similar, you need to install a CC linker (you might already have it if you've run sudo apt-get update before), run
sudo apt-get update
sudo apt install build-essential
- Yarn needs rust to be build at least once so it can cross reference dependencies in the monorepo. Run in the repo root directory
yarn rust:build
// don't panic, this might take a few seconds
- Install node dependencies, run
yarn
- Build the Svelte app
yarn run web:build
- Install cargo watch
cargo install cargo-watch
- To start the development server, run
yarn dev
- To start the just the web development server, run
yarn run web:dev
- To start the production server, run
yarn run web:prod
- Enjoy! Got some feedback? Open an issue, or better yet, a PR. If you like this template, please star this repo.
This needs to work with a regular CI (ie: vercel/netlify/github pages). Will create a guide for this if there is enough demand for it.
If this gets enough attention, and there demand for it, I will create a template for sveltekit, and potentially for vue and react.