plaster

plaster is a modern Rust framework for creating frontend apps with WebAssembly.

It was orginally forked from [yew].

Why the fork?

yew is a great framework and I've found a ton of great use from it on my projects. However, it was built on-top of [stdweb], which is also great, but [wasm-bindgen] and the associated crates such as [web_sys] are pretty much the "annointed" libraries for low-level access to Web/JS APIs in WebAssembly. They are designed to more or less match the eventual host-level bindings to these APIs directly from WebAssembly and are generated from WebIDL definitions, making their upkeep much easier and reducing the time to access new APIs as they become standardized and available.

Additionally, yew takes an opinionated stance to concurrency and parallelism with its actor model. I'm not personally a huge fan of actors, and I'd prefer to just use Futures and libraries that build on top of that primitive, so I'd like the framework to easily support that more idiomatic model. [wasm-bindgen-futures] makes this nice and easy to do with the browser's built-in Promise support.

In a nutshell: