Skip to content
WIP Idiomatic Frontend Web Framework for Rust / WebAssembly
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.cargo maybe this fixes the test runner? Feb 1, 2019
.github
crates fmt May 18, 2019
examples conver minimal example Feb 5, 2019
src add initial props support for App mounting Apr 13, 2019
tests set tests to run in browser Feb 1, 2019
.gitignore
.travis.yml typo Feb 13, 2019
Cargo.toml upgrade wasm futures May 12, 2019
LICENSE-APACHE
LICENSE-MIT Add licenses Dec 24, 2017
README.md fix links in readme Feb 1, 2019

README.md

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:

  • yew is built on stdweb, I want to use wasm-bindgen and web_sys.
  • yew implements an actor-based concurrency model, I want to use Futures and Promises.
  • yew implements Services to try and provide some higher-level Rust primitives for some commmon JS/Web patterns. I think this is out of the library's scope and would like to thin it out by removing this concept and instead making interoperation between Promise-based Futures and Component updates easy.
  • yew uses a custom macro for JSX-like syntax. I'd like to explore potentially integrating one of the solutions others are working on for a "common" macro that does this. (This isn't really a reason to fork, more just a note for the future)
You can’t perform that action at this time.