#macros #framework #support

nightly macro simi-macros

Macros support for the Simi framework

7 releases

✓ Uses Rust 2018 edition

0.2.0 Dec 31, 2018
0.1.4 Oct 28, 2018
0.0.1 Sep 29, 2018

#176 in Web programming

Download history 5/week @ 2018-10-21 23/week @ 2018-10-28 51/week @ 2018-11-04 25/week @ 2018-11-11 13/week @ 2018-11-18 8/week @ 2018-11-25 13/week @ 2018-12-02 40/week @ 2018-12-09 12/week @ 2018-12-16 45/week @ 2018-12-23 39/week @ 2018-12-30 15/week @ 2019-01-06 12/week @ 2019-01-13

115 downloads per month
Used in 2 crates (1 directly)

Custom license

114KB
3K SLoC

Simi [WIP]

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

This is still a WIP.

  • 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

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)

The benchmark result show that Simi and the low level Stdweb are similar in performance. But I expected that Simi must be behind Stdweb, just like other JS frameworks fall behind the VanillaJS. On my system, Simi is actually behind Stdweb.

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