#wasm #html #dom #web

hirola

A html library for building client side webapps

5 releases

Uses new Rust 2021

new 0.1.6 Aug 9, 2022
0.1.5 Aug 5, 2022
0.1.4 Aug 1, 2022
0.1.3 Aug 1, 2022
0.1.3-alpha.0 Dec 30, 2020

#219 in WebAssembly

Download history 6/week @ 2022-04-28 4/week @ 2022-05-05 16/week @ 2022-05-12 6/week @ 2022-05-19 6/week @ 2022-05-26 9/week @ 2022-06-02 2/week @ 2022-06-16 2/week @ 2022-07-07 1/week @ 2022-07-14 2/week @ 2022-07-21 44/week @ 2022-07-28 58/week @ 2022-08-04

106 downloads per month

MIT/Apache

115KB
2.5K SLoC

Hirola

Latest Version Build Status MIT licensed

Hirola is an opinionated web framework for that is focused on simplicity and predictability.

Here is a simple example:

use hirola::prelude::*;

fn counter(_: &HirolaApp) -> Dom {
    let state = Signal::new(99);
    let decerement = state.mut_callback(|count, _| *count - 1);
    let incerement = state.mut_callback(|count, _| *count + 1);

    html! {
        <div>
            <button on:click={decerement}>"-"</button>
            <input value={state.get()} disabled/>
            <button on:click={incerement}>"+"</button>
        </div>
    }
}

fn main() {
    let mut app = HirolaApp::new();
    app.mount("body", counter);
}

Milestones

Status Goal Labels
Write code that is declarative and easy to follow ready
Standardize Components help wanted
🚀 SSR First Approach help wanted
🚀 Hydration help wanted
🚀 Serverside integrations help wanted

Inspiration

  • Sycamore/Maple
  • Alpine.js
  • React.js
  • Yew

Demo examples

This API will certainly change.

Go to examples and use trunk

$  trunk serve

Prerequisite:

You need need to have rust, cargo and trunk installed.

License: MIT

Dependencies

~9MB
~175K SLoC