Note: this repository is archived. I sketched it out at the time because nothing like it existed and I wanted to scratch an itch. But now Yew has come a really long way, and keeping up with all the changes + maintaining a backend, however minimal, is just not something that interests me anymore. It's irresponsible for me to have this be a "most stars" hit when people search for Yew, when it will usually be busted and out of date. Better stuff exists. Start with the official docs
It can still serve as an example for what I'd consider to be a basic repo layout, but you'll have to rewrite most of the internals.
The front-end rust web development space is still evolving, but has already benefitted from the (frankly incredible) work of so many trailblazers.
The next version of this repo needs to be written by someone new, scratching their own itch. Go do radical shit.
Love, Coleman
Rocket is a framework for building web servers in Rust, with a routing API that feels like Flask (Python). Yew is a front end framework for writing apps in Rust using cutting-edge (but well-supported) WebAssembly technologies, and with an API inspired by patterns from Elm and React.
This project adapts the todoMVC example from the yew repo, and periodically syncs local state with a backend Rocket server.
We also include some scripts to demonstrate building the ui and shipping it over to the server to serve as static assets.
Install rust with rustup
. Since we build with --target=wasm32-unknown-unknown
, and rely on
other unstable features, you must use nightly rust.
rustup default nightly
Build both ui
and server
on your current platform
./build.sh
Or, build ui
and copy the outputs over to server
to run locally.
./run-local.sh
Or, build the Rocket server backend as a static binary, using Eric Kidd's Docker container.
./static-binary.sh # calls server/.container-script.sh
This project also uses: