hirola 0.1.3

A html library for building client side webapps
Documentation

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) -> TemplateResult<DomNode> {
    let state = Signal::new(99);
    let decerement = state.reduce_callback(|count, _| *count - 1);
    let incerement = state.reduce_callback(|count, _| *count + 1);

    html! {
        <div class="flex flex-row h-10">
            <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);
}

Goals

  • Write code that is declarative and easy to follow.
  • Follow Alpine-ish kind of Reactive and declarative style.
  • Async Handling and server-side integration.

Inspiration

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

Demo examples

This API will certainly change.

Prerequisite:

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

License: MIT