team icon indicating copy to clipboard operation
team copied to clipboard

Create a project template for writing pure-Rust wasm web apps

Open fitzgen opened this issue 7 years ago • 2 comments
trafficstars

It should have

  • the state-of-the-art dependencies already in Cargo.toml
  • extern declarations for those crates already in src/lib.rs
  • headless browser testing ready-to-go
  • some script or makefile or cargo-web type thing that does cargo 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?

fitzgen avatar Feb 14 '18 23:02 fitzgen

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)

aidanhs avatar Jan 27 '19 20:01 aidanhs

For reference: https://github.com/yewstack/yew-wasm-pack-minimal

kellytk avatar Oct 21 '19 09:10 kellytk