15个版本
使用旧Rust 2015
0.2.5 | 2019年7月13日 |
---|---|
0.2.4 | 2019年6月28日 |
0.2.2 | 2019年5月23日 |
0.2.0 | 2019年4月13日 |
0.1.7 | 2019年2月21日 |
#11 in #webasm
65 个月下载量
用于 3 crates
130KB
2.5K SLoC
plaster
plaster 是一个现代的 Rust 框架,用于使用 WebAssembly 创建前端应用程序。
它最初是从 yew 分支出来的。
为什么要分支?
yew 是一个优秀的框架,我在我的项目中找到了很多很好的用途。然而,它是建立在 stdweb 之上的,这也是一个很棒的框架,但是 wasm-bindgen 以及相关的 crate,如 web_sys,几乎是 WebAssembly 中低级访问 Web/JS API 的“圣洁”库。它们被设计为尽可能地与 WebAssembly 中直接从 WebIDL 定义生成的最终宿主级别绑定相匹配,从而使维护变得更加容易,并减少了访问新 API 的时间,因为它们变得标准化和可用。
此外,yew 对并发和并行性采取了有意见的立场,使用其 actor 模型。我并不是特别喜欢 actor,我更愿意只使用 Futures 和构建在该原语之上的库,所以我希望框架能够更容易地支持这个更自然的模型。 wasm-bindgen-futures 使得这非常容易实现,因为浏览器内置了对 Promise 的支持。
简而言之
- yew 是建立在 stdweb 之上的,我想使用 wasm-bindgen 和 web_sys。
- yew 实现了一个基于 actor 的并发模型,我想使用 Futures 和 Promises。
- yew 实现了
Services
来尝试提供一些常用的 JS/Web 模式的 Rust 高级原语。我认为这超出了库的范畴,并希望通过删除这个概念来简化它,并使基于 Promise 的 Futures 和组件更新的交互变得容易。 - yew 使用一个自定义宏来实现 JSX 类似的语法。我想探索可能将其他人在努力实现的“通用”宏整合进来。 (这并不是分支的原因,更多的是对未来的一个备注)
依赖项
~6.5–9MB
~172K SLoC