Maintenance

sauron

Latest Version Build Status MIT licensed

sauron

Guide

Sauron is an web framework for creating fast and interactive client side web application, as well as server-side rendering for back-end web applications.

Example

```rust use log::trace; use sauron::html::attributes::attr; use sauron::html::text; use sauron::prelude::*; use sauron::{Cmd, Component, Node, Program};

[derive(Debug)]

pub enum Msg { Click, }

pub struct App { click_count: u32, }

impl App { pub fn new() -> Self { App { click_count: 0 } } }

impl Component for App { fn view(&self) -> Node { node! {

"Minimal example"

{text(format!("Clicked: {}", self.click_count))}
} }

fn update(&mut self, msg: Msg) -> Cmd<Self, Msg> {
    trace!("App is updating with msg: {:?}", msg);
    match msg {
        Msg::Click => self.click_count += 1,
    }
    Cmd::none()
}

}

[wasm_bindgen(start)]

pub fn main() { consolelog::initwithlevel(log::Level::Trace).unwrap(); consoleerrorpanichook::setonce(); Program::mountto_body(App::new()); } ```

index.html html <html> <head> <meta content="text/html;charset=utf-8" http-equiv="Content-Type"/> <title>Minimal sauron app</title> </head> <body> <script type=module> import init from './pkg/minimal.js'; init().catch(console.error); </script> </body> </html> In Cargo.toml, specify the crate-type to be cdylib ```toml

[package] name = "minimal" version = "0.1.0" edition = "2018"

[lib] crate-type = ["cdylib"]

[dependencies] sauron = "0.37" consoleerrorpanichook = "0.1" log = "0.4" consolelog = "0.2" ```

Build using sh $> wasm-pack build --target web --release Look at the examples and the build script for the details.

Demo examples

Converting HTML into Sauron's syntax

html2sauron - A tool to easily convert html into sauron node tree for your views.

Prerequisite:

sh cargo install wasm-pack cargo install basic-http-server

Performance:

Sauron is one of the fastest.

Benchmark Benchmark

Run the benchmark yourself:

Benchmark 1 Benchmark 2

Please support this project:

Become a patron

License: MIT