#gui #ui


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




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.


  • 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