#gui #ui

guion

Flexible GUI Framework

7 releases (4 breaking)

0.5.0-dev1 Jun 9, 2021
0.4.0 Mar 2, 2021
0.3.0 Dec 30, 2020
0.2.0-dev2 May 23, 2020
0.1.1 Apr 13, 2020

#65 in GUI

32 downloads per month
Used in guion_sdl2

MIT/Apache

325KB
8K SLoC

guion

crates.io docs.rs MIT or Apache 2.0 licensed

 

guion is an experimental GUI framework, focused on flexibility (e.g. guion core flexible Widget model) and modularity (e.g. separate backend/engine, interchangeable standard components).

guion being in an experimental state, API and concepts are still in flux.

Goals:

  • Data-oriented: Widgets abstract over model, can be directly implemented onto model, or be immediate
  • Widgets own model/data or reference model/data as immediate widget
  • Dynamic separate Context/states
  • Widget Tree/Model separate from Context, State and side-data
  • Modularity
    • Separation of core, backend, and higher features
    • Components are defined in generics and traits
    • Standard implementations can be combined with e.g. a custom ID implementation.
  • guion-widgets Standard Widgets: common widgets, layouting widgets, etc.
    • Can own or reference data immediate, Widget state in model or Context
  • guion-std Standard Window features like focused/hovered widgets, tabulating, drag/drop
  • Widget Data caching/invalidation abstractions
  • Tame complexity, provide efficient abstractions to make life easier

Related Project:

  • guion_sdl2 for a prototype backend implementation

Dependencies