Giter Club home page Giter Club logo

gooey's Introduction

Gooey

Gooey is considered alpha and unsupported crate version Documentation for main branch

Gooey is an experimental Graphical User Interface (GUI) crate for the Rust programming language. It is powered by:

Getting Started with Gooey

The Widget trait is the building block of Gooey: Every user interface element implements Widget. The Widget trait documentation has an overview of how Gooey works. A list of built-in widgets can be found in the gooey::widgets module.

Gooey uses a reactive data model. To see an example of how reactive data models work, consider this example that displays a button that increments its own label:

fn main() -> gooey::Result {
    // Create a dynamic usize.
    let count = Dynamic::new(0_isize);
    // Create a dynamic that contains `count.to_string()`
    let count_label = count.map_each(ToString::to_string);

    // Create a new button whose text is our dynamic string.
    count_label
        .into_button()
        // Set the `on_click` callback to a closure that increments the counter.
        .on_click(move |_| count.set(count.get() + 1))
        // Run the application
        .run()
}

A great way to learn more about Gooey is to explore the examples directory. Nearly every feature in Gooey was initially tested by creating an example.

Project Status

This project is early in development, but is quickly becoming a decent framework. It is considered alpha and unsupported at this time, and the primary focus for @ecton is to use this for his own projects. Feature requests and bug fixes will be prioritized based on @ecton's own needs.

If you would like to contribute, bug fixes are always appreciated. Before working on a new feature, please open an issue proposing the feature and problem it aims to solve. Doing so will help prevent friction in merging pull requests, as it ensures changes fit the vision the maintainers have for Gooey.

Open-source Licenses

This project, like all projects from Khonsu Labs, is open-source. This repository is available under the MIT License or the Apache License 2.0.

To learn more about contributing, please see CONTRIBUTING.md.

gooey's People

Contributors

ecton avatar modprog avatar plecra avatar togglebyte avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.