/suzy

GUI framework for Rust based on observer pattern

Primary LanguageRustApache License 2.0Apache-2.0

crates.io docs.rs Build Status License

Suzy is a GUI framework in Rust based on the observer pattern. Inspired heavily by the kivy framework for Python.

Project Goals:

  • Explicit layout by default - the first-class layout support is to write declaritive code which describes the relationship between GUI elements.
  • Productivity - The automatic observer patern enables rapid prototyping.
  • Multitouch by default - mouse and touchscreen input is unified, unless explicitly distinguished by the application.

Secondary Project Goals

  • BYO - Although the declaritive, observer pattern style is prescribed, very little else is: non-optional dependencies are minimized in favor of "glue" that allows applications to choose their own set of utilities for tasks such as image loading, windowing, etc.
  • Embeddebility - You should be able to use Suzy as a library within e.g. a game engine, as long as the graphics interface is compatible.
  • Performance - GUIs made using Suzy are light-weight. It is uncommon that GUI code is a bottleneck for real-world applications.