ruukh 0.0.2

An experimental next-gen frontend framework for the Web in Rust.
# Ruukh - Frontend Web Framework

An experimental next-gen frontend framework for the Web in Rust. Write your web app in 
pure Rust.

#### !! THIS IS HIGHLY UNSTABLE !!
Don't depend on this library for any of your production code. Also, this project does not
make a guarantee that it will ever stabilize as there are a lot of issues to iron out. This
project also might have breaking changes in minor version till `0.1.0`. So, for the time 
being, this project is in a state of continuous experimentation.

# Usage

Create a new library project as binary projects are not supported to run on WASM.

Add the following to your `Cargo.toml`:
```toml
[lib]
crate-type = ["cdylib"]

[dependencies]
ruukh = "0.0.2"
wasm-bindgen = "0.2.21"
```

## Ruukh CLI

You may use [`cargo-ruukh`](https://github.com/csharad/cargo-ruukh) to make your life easier
to build and run Ruukh projects. It supports running your webapp in a development server.

To install it:
```shell
cargo install cargo-ruukh
```

For more information: read up the [README](https://github.com/csharad/cargo-ruukh) at its own repo.

## Code structure

The CLI to run your project effortlessly expects your code to be structured in a particular way.
Also, mind that this library requires latest nightly to work.

In `lib.rs` with 2018 edition enabled:

```rust
#![feature(proc_macro_gen, proc_macro_non_items, decl_macro)]

use wasm_bindgen::prelude::*;
use ruukh::prelude::*;

#[component]
#[derive(Lifecycle)]
struct MyApp;

impl Render for MyApp {
    fn render(&self) -> Markup<Self> {
        html! {
            "Hello World!"
        }
    }
}

#[wasm_bindgen]
pub fn run() {
    App::<MyApp>::new().mount("app");
}
```

To check & see how the Ruukh app works, go to the [Examples](https://github.com/csharad/ruukh/tree/master/examples) section and run those projects.

---
The project is licensed under [MIT](https://github.com/csharad/ruukh/blob/master/LICENSE).