All Projects → jtomschroeder → Cedar

jtomschroeder / Cedar

Licence: mit
Rust framework for building visual/interactive applications

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Cedar

Chopsui
An experimental UI toolkit
Stars: ✭ 130 (-4.41%)
Mutual labels:  gui
Tunapanel
Autogenerate live Web-based control panels for Rust programs
Stars: ✭ 133 (-2.21%)
Mutual labels:  gui
Git Cola
git-cola: The highly caffeinated Git GUI
Stars: ✭ 1,787 (+1213.97%)
Mutual labels:  gui
Litegui.js
Javascript Library to create webapps with a desktop look-alike interface. All the widgets are created from Javascript instead of using HTML.
Stars: ✭ 131 (-3.68%)
Mutual labels:  gui
Imgui
Immediate Mode GUI for C#
Stars: ✭ 133 (-2.21%)
Mutual labels:  gui
Lambdaattack
Minecraft bot for servers. Currently supports stress testing. More features are planned
Stars: ✭ 133 (-2.21%)
Mutual labels:  gui
Tabtoolbar
A small library for creating tabbed toolbars
Stars: ✭ 129 (-5.15%)
Mutual labels:  gui
Avalonia
A cross platform XAML framework for .NET
Stars: ✭ 12,588 (+9155.88%)
Mutual labels:  gui
Smartinvs
Advanced Inventory API for your Minecraft Bukkit plugins.
Stars: ✭ 132 (-2.94%)
Mutual labels:  gui
Kanban App
Kanban board built with Rust and Elm
Stars: ✭ 1,711 (+1158.09%)
Mutual labels:  gui
Electron Python Example
Electron as GUI of Python Applications
Stars: ✭ 1,749 (+1186.03%)
Mutual labels:  gui
React Nodegui Starter
Starter repository for react based native desktop apps using react-nodegui
Stars: ✭ 132 (-2.94%)
Mutual labels:  gui
Atlas Python
For versatile GUIs written in HTML/CSS and Python (no JavaScript needed; also available for other languages) - The lightweight and easy-to-use toolkit to begin with GUI programming.
Stars: ✭ 133 (-2.21%)
Mutual labels:  gui
Pgbouncerhero
A dashboard for your PgBouncers.
Stars: ✭ 129 (-5.15%)
Mutual labels:  gui
Attendace management system
In this system we can fill attendance by face recognition
Stars: ✭ 135 (-0.74%)
Mutual labels:  gui
Rcloneexplorer
rclone GUI for Windows
Stars: ✭ 129 (-5.15%)
Mutual labels:  gui
Reactivereswift
Unidirectional Data Flow in Swift via FRP - Inspired by Elm
Stars: ✭ 133 (-2.21%)
Mutual labels:  frp
Borealis
Hardware accelerated, controller and TV oriented UI library for PC and Nintendo Switch (libnx).
Stars: ✭ 135 (-0.74%)
Mutual labels:  gui
Kubebox
⎈❏ Terminal and Web console for Kubernetes
Stars: ✭ 1,855 (+1263.97%)
Mutual labels:  gui
Imgui sdl
ImGuiSDL: SDL2 based renderer for Dear ImGui
Stars: ✭ 134 (-1.47%)
Mutual labels:  gui

cedar 🌲

cedar is a Rust framework for building visual/interactive applications.

crates.io License Build Status

Note: cedar is in the experimental stage and rapidly evolving.

Getting started!

Add the following dependency to your Cargo.toml:

cedar = { git = "https://github.com/jtomschroeder/cedar" }

Example: creating buttons & reactive text 🚀

#![feature(proc_macro)]
#![feature(proc_macro_non_items)]

extern crate cedar;

use cedar::hypertext;

type Model = i32;

#[derive(PartialEq)]
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) -> cedar::dom::Object<Message> {
    (hypertext! { |model|
        <div>
            <button click={Message::Increment}> + </button>
            <div>{model}</div>
            <button click={Message::Decrement}> - </button>
        </div>
    })(model)
}

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

Design

A cedar application is composed of a model, update, and view - all declared up-front:

  • model: the state of our app
  • update: how to update our state based on a message (i.e. event)
  • view: how to transform our state into UI 'widgets'

This architecture is powerful, yet simple. Using a declarative approach, we can achieve impressive reactivity without having to worry about threads, locks, event routing, or view controllers.

Check out the examples!

Credits

Inspired by:

cedar is released under the MIT license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].