All Projects → geom3trik → VIZIA

geom3trik / VIZIA

Licence: MIT license
A declarative GUI library written in Rust

Programming Languages

rust
11053 projects
CSS
56736 projects

Projects that are alternatives of or similar to VIZIA

Iced
A cross-platform GUI library for Rust, inspired by Elm
Stars: ✭ 12,176 (+2109.8%)
Mutual labels:  toolkit, user-interface
pulsar
The User Experience and Interface framework by Jadu.
Stars: ✭ 23 (-95.83%)
Mutual labels:  toolkit, user-interface
Mola
A Modular Optimization framework for Localization and mApping (MOLA)
Stars: ✭ 206 (-62.61%)
Mutual labels:  toolkit
D-KMP-sample
D-KMP Architecture official sample: it uses a shared KMP ViewModel and Navigation for Compose and SwiftUI apps.
Stars: ✭ 636 (+15.43%)
Mutual labels:  declarative-ui
Mercury
Mercury is a hacking tool used to collect information and use the information to further hurt the target
Stars: ✭ 236 (-57.17%)
Mutual labels:  toolkit
Libagar
Cross-Platform GUI Toolkit (stable)
Stars: ✭ 212 (-61.52%)
Mutual labels:  toolkit
Bioperl Live
Core BioPerl 1.x code
Stars: ✭ 244 (-55.72%)
Mutual labels:  toolkit
Typescene
Strongly typed front-end framework
Stars: ✭ 197 (-64.25%)
Mutual labels:  toolkit
MIMS
PyQt application for creating mass interaction models and compiling them into Faust dsp code, or ~gen objects (for Max/MSP)
Stars: ✭ 22 (-96.01%)
Mutual labels:  user-interface
Staplr
PDF Toolkit. 📎 🔨 🔧 ✂️ 📑 📁📎 🔖 🚧 👷
Stars: ✭ 221 (-59.89%)
Mutual labels:  toolkit
dt-utils
前端常用工具函数
Stars: ✭ 23 (-95.83%)
Mutual labels:  toolkit
Xrtk Core
The Official Mixed Reality Framework for Unity
Stars: ✭ 219 (-60.25%)
Mutual labels:  toolkit
Bedops
🔬 BEDOPS: high-performance genomic feature operations
Stars: ✭ 215 (-60.98%)
Mutual labels:  toolkit
Jfa Pwa Toolkit
⚡️ PWA Features to Any Website (very Fast & Easy)
Stars: ✭ 245 (-55.54%)
Mutual labels:  toolkit
Luminoth
Deep Learning toolkit for Computer Vision.
Stars: ✭ 2,386 (+333.03%)
Mutual labels:  toolkit
blog
个人博客,关注前端工程化及移动端
Stars: ✭ 17 (-96.91%)
Mutual labels:  toolkit
Hiddeneye Legacy
Modern Phishing Tool With Advanced Functionality And Multiple Tunnelling Services [ Android-Support-Available ]
Stars: ✭ 2,568 (+366.06%)
Mutual labels:  toolkit
Phonia
Phonia Toolkit is one of the most advanced toolkits to scan phone numbers using only free resources. The goal is to first gather standard information such as country, area, carrier and line type on any international phone numbers with a very good accuracy.
Stars: ✭ 221 (-59.89%)
Mutual labels:  toolkit
Pk3ds
Pokémon (3DS) ROM Editor & Randomizer
Stars: ✭ 244 (-55.72%)
Mutual labels:  toolkit
nightingale
NHS-Generic Frontend Framework.
Stars: ✭ 34 (-93.83%)
Mutual labels:  toolkit

Vizia


Vizia is a declarative GUI framework for the Rust programming language.



At a Glance

A simple counter application. Run with cargo run --example counter.

use vizia::prelude::*;

// Define some model data
#[derive(Lens)]
pub struct AppData {
    count: i32,
}

// Define events to mutate the data
pub enum AppEvent {
    Increment,
}

// Describe how the data can be mutated
impl Model for AppData {
    fn event(&mut self, _: &mut EventContext, event: &mut Event) {
        event.map(|app_event, _| match app_event {
            AppEvent::Increment => {
                self.count += 1;
            }
        });
    }
}
fn main() {
    Application::new(|cx| {
        // Build the model data into the tree
        AppData { count: 0 }.build(cx);

        HStack::new(cx, |cx| {
            // Declare a button which emits an event
            Button::new(cx, |cx| cx.emit(AppEvent::Increment), |cx| Label::new(cx, "Increment"));

            // Declare a label which is bound to part of the model, updating if it changes
            Label::new(cx, AppData::count).width(Pixels(50.0));
        })
        .child_space(Stretch(1.0))
        .col_between(Pixels(50.0));
    })
    .title("Counter")
    .inner_size((400, 100))
    .run();
}

Features

  • Multiplatform (Windows, Linux, MacOS, Web)
  • Declarative API
  • Reactive event-driven data system
  • Flexible layout engine, powered by morphorm
  • GPU rendering, powered by femtovg
  • CSS styling with hot reloading
  • Property animations
  • Audio plugin GUI development

Running the Examples

A full list of examples is included in the repository.

To run an example with the winit (default) windowing backend:

cargo run --release --example name_of_example

To run an example with the baseview windowing backend:

cargo run --release --example name_of_example --no-default-features --features baseview

Web

To run an example as a web application, first ensure that the wasm32-unknown-unknown toolchain is installed:

rustup target add wasm32-unknown-unknown

Then run an example with the following:

cargo run-wasm --release --example name_of_example

NOTE - Some examples are not compatible with the web target.

Contributing and Community

For help with vizia, or to get involved with contributing to the project, come join us on our discord.

License and Attribution

Vizia is licensed under MIT.

Fonts used in Vizia:

Vizia logo designed by Lunae Somnia.

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].