#wasm-framework #web-apps #front-end #web-framework #framework #web

simi

A framework for building wasm front-end web application in Rust

9 releases

0.2.1 May 4, 2019
0.2.0 Dec 31, 2018
0.1.4 Oct 28, 2018
0.0.1 Sep 29, 2018
0.0.0 Jul 19, 2018

#50 in #wasm-framework

29 downloads per month
Used in 2 crates (via simi-test)

Custom license

105KB
2K SLoC

Simi [WIP]

A framework for building wasm front-end web application in Rust. Simi is inspired by Yew

This is still a WIP. Breaking changes will occurs frequently.

  • No webpack, no nodejs
  • Component, nested component
  • Sub-apps
    • Your main app can have multiple sub-apps in it. A sub-app render its own view, independly from the parent app. Parent can send messages to sub-app and vice versa.
  • Try to avoid generating new virtual DOM on updating
    • Only generate new virtual DOM for some special cases
  • Auto compile .scss to .css, with the help of simi-cli (thanks to rsass)

Documentation

Guide

Build on stable Rust

For information on how to build and serve a simi app, please see the guide (link in the Documentation section above).

The master branch is now supported build on stable Rust. But only examples in stable-examples/* can be successfully built on stable Rust now. If you use simi-cli, intstall it from git master and run simi build -s or simi build --stable in an example folder, for example, in stable-examples/counter. Or simi serve -s and visit localhost:8000.

Benchmark

A benchmark for Simi is submitted to https://github.com/krausest/js-framework-benchmark. Here is a snapshot result (see non-keyed result only, Simi does not support keyed-for-loop yet). Please note that Stdweb and Yew's benchmark binaries are built by Rust nightly-2018-07-11. Simi is built with Rust nightly around 2018-12-7->9 (don’t remember exactly). And a note from the benchmark repo:

The current snapshot that may not have the same quality (i.e. results might be for mixed browser versions, number of runs per benchmark may vary)

License

I do not familar with any license before so I am not sure what license to choose. I just draft my own minimal license in LICENSE at the root of this repo.

Dependencies

~10–14MB
~247K SLoC