Hirola is an opinionated web framework for that is focused on simplicity and predictability.
Here is a simple example:
```rust use hirola::prelude::*;
fn counter(: &HirolaApp) -> Dom { let state = Signal::new(99); let decerement = state.reducecallback(|count, | *count - 1); let incerement = state.reducecallback(|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); }
```
| 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
|
This API will certainly change.
Go to examples
and use trunk
$ trunk serve
You need need to have rust
, cargo
and trunk
installed.
License: MIT