This is an early-stage attempt to write a GUI framework in Rust based on the
observer pattern. Inspired heavily by the kivy
framework for Python.
Project Goals:
- Productivity - One of the biggest priorities to emulate from kivy is ease
of use for rapid development.
- Explicit layout by default - the first-class layout support is to write
declaritive code which describes the relationship between GUI elements.
This is the author's personal preference over alternitives like flex-box.
- Multitouch by default - also inherited from kivy, mouse and touchscreen
input is unified, unless explicitly distinguished by the application.
Lesser Project Goals
- BYO - Although the declaritive, observer pattern style is prescribed, the
intention is that very little else will be: non-optional dependencies will
be minimized in favor of "glue" that allows applications to choose their own
set of utilities for tasks such as image loading, windowing, etc.
- Embeddebility - Optimistically, you should be able to use this as a library
within e.g. a game engine. The details of this are not fully explored yet.
- Performance - you should be able to write a light-weight GUI using this
library. Being "the fastest" is not a priority for the author; it is assumed
to be unlikely that GUI code is a common bottleneck for real-world
applications.