Reading: "Fr" as in "fruit" and "ui" as in "you" and "I".
What is Frui?
Frui is a developer-friendly UI framework that makes building user interfaces easy and productive. It's based on Flutter architecture and is written in Rust!
Example
use *;
;
Features
Frui, as of now, is a PoC, and has only implemented the most essential parts of the API. There is a lot of work that needs to be done, especially in terms of back-end considerations, optimizations, and widget implementations (widgets like buttons, gesture detectors, theming, flex wrappers, etc.).
-
ViewWidget(based onStatelessWidgetandStatefulWidget) -
InheritedWidget(based onInheritedWidget) -
LocalKey(based onKey) - Scheduling state updates
- Basic event detection (
KeyboardEventDetector/ mouse events througheventmethod) - Basic layout widgets (
Column,Row,Center) - Documentation and tutorials
- Event passing, handling focus, Z-layers
- Optimizations: widget-rebuild order based on depth, layout & painting
- Library of widgets common to all visual langauges provided out of the box (
Column,Row,GestureDetector,Scroll, etc.) - Separate widget library implementing one of the design languages (e.g. Material Design)
🦀 Counter - Example
Obligatory crab counter! From examples/crab_counter.rs.
use *;
use Button;
;
Crabs counter running on MacOS
Credits
Frui wouldn't exist without Flutter and its widget architecture, which inspired Frui's API.
Frui also wouldn't exist without prior work done on Druid - which powers most of the back-end. Many widgets share some of the implementation details with it as well.
Thank you!
License
All code in this repository is dual-licensed under either:
- MIT License (LICENSE-MIT or http://opensource.org/licenses/MIT)
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)