cedar :evergreen_tree:

cedar is a functional-reactive framework.

crates.io License Build Status

Status: cedar is in the alpha stage - not yet ready for prime-time.

Usage

Add cedar to your project via cargo.

Creating buttons & reactive text :rocket:

```rust extern crate cedar;

use cedar::dom; use cedar::dom::Builder;

type Model = i32;

[derive(PartialEq, Debug, Clone)]

enum Message { Increment, Decrement, }

fn update(model: Model, message: Message) -> Model { match message { Message::Increment => model + 1, Message::Decrement => model - 1, } }

fn view(model: &Model) -> dom::Object { dom::stack() .add(dom::button().text("+".into()).click(Message::Increment)) .add(dom::label().text(model.to_string())) .add(dom::button().text("-".into()).click(Message::Decrement)) }

fn main() { cedar::program(0, update, view) } ```

Design

A cedar application is composed of a model, update, and view. TODO: expand on this....

Credits

Inspired by: - elm-lang - shoes-rb

cedar is Copyright © Tom Schroeder j.tom.schroeder@gmail.com and released under MIT license.