team
team copied to clipboard
Create a project template for writing pure-Rust wasm web apps
It should have
- the state-of-the-art dependencies already in
Cargo.toml externdeclarations for those crates already insrc/lib.rs- headless browser testing ready-to-go
- some script or makefile or
cargo-webtype thing that doescargo build --release wasm32-unknown-unknown && wasm-gc ... && wasm-opt ... && xdg-open path/to/index.html
Open questions:
- Where should this template live? A new repository?
- What dependencies should it come with?
wasm-bindgen? Is this applicable for the pure-Rust webapp use case?stdweb?yew?- Other things?
If the selected backend for this project template offers some kind of synchronising between state in Rust and the dom (e.g. via a render method), it should have an accessible way to do controlled components, as otherwise it becomes easy to get your dom drifting out of sync with your state without noticing.
Note: I did a census of the Rust frameworks I'm aware of in the linked issue and this is an problem in all of them.
(I don't consider libraries which permit manually manipulation of the dom to have this issue, since it's clear that it's up to the user to keep things in sync)
For reference: https://github.com/yewstack/yew-wasm-pack-minimal