
Rad-UI released! A new reactive, cross-platform C++20 UI framework
I just released my c++ 20 library for reactive UI development inspired by QML and slint.
I haven't worked on the project for a while and thought it has reached a usable state and wanted to share it.
What is included in the library:
- reactive framework with `Property<T>` type. Currently the reactive types are tied to the library internals and not for general use.
- Memory is managed for a great extent. You will never have to use `delete` or `new` except in the constructor of `std::unique_ptr<T>` if `std::make_unique` does not suffice.
- Mouse and Keyboard and Clipboard support.
- Smooth, powerful and easy to use animations.
- GPU rendering using direct2d on Windows and skia for anything else.
- High DPI support and frames are updated only when something changes.
- Complex text rendering using DirectWrite and skia paragraph supporting complex formatting and mixed RTL and LTR languages. Loading fonts from system, memory and files is supported.
- Support for Windows and X11 (and XWayland) with plans to support Wayland natively, macos and android.
- Ready to use UI components from material3 and fluent2 although most components are not implemented yet.
- Model View Delegate framework: ListView, TableView and TreeView along with basic models and delegates.
- Multiple top-level windows, modal windows and popups.
- Async, multithreading and networking support is provided through the RAD library.
- Many other things I may have forgotten to mention!
What is not included yet:
Documentation (the biggest thing!), accessibility, internal and external drag and drop, better multi paragraph text support, implement more UI components, embedded resources, translations and localization and a ton of other things.
Demonstration video:
https://youtu.be/QDgY-0hH1gs
I reduced the quality and FPS to reduce the size of the video