libwui — an alternative to Qt/QML for those who want fast UIs, small binaries and a predictable API. No code generators, minimal dependencies, maximum control.
Open‑source. No vendor lock‑in. Suitable for desktop and embedded systems.
How libwui code looks
// Minimal example: window + button
#include <wui/app.h>
#include <wui/window.h>
#include <wui/controls/button.h>
int main(){
wui::app app;
wui::window win{"libwui demo", {800, 520}};
auto btn = std::make_shared<wui::button>("Click me");
btn->on_click([]{ std::puts("clicked"); });
win.set_content(btn);
win.show();
return app.run();
}
Pure C++: lambdas, std::function, no MOC.
Only what’s needed for UI. No dozens of modules (SQL, XML, 3D, etc.) that inflate dependencies and complicate maintenance.
Native std stack: templates, lambdas, smart pointers. Transparent event model, no hidden code generation.
Minimal footprint and fast startup — important both for distribution and embedded systems.
No external generators, fewer build stages, fewer “it broke on agents” cases.
Docs and code go side by side: fewer “magical” states, clear lifecycle.
No paid licenses for static linking and closed code; you control the product.
Criterion | libwui | Qt / QML |
---|---|---|
Language / model | Pure C++, events via std::function | Custom signals/slots, MOC, QML (JS) |
Build | No code generators, simpler CI | moc/uic/rcc, long builds |
Binary size | Small footprint | Much larger |
Dependencies | Minimal | Many modules and ABI layers |
UI nativeness | Focus on custom modern UI | Widgets/QML, varying “nativeness” per platform |
Learning curve | Low for C++ developers | QML/JS, new paradigm |
Licensing | Open‑source, no fee for static linking | GPL/LGPL or expensive commercial |
Ready‑made components | Core set + extensibility | Large widget library |
* Size and speed estimates depend on project config; given as guidance.
Windows, containers, buttons, input fields, lists, panels, dialogs. Smooth animations where appropriate.
“Sufficient minimum” strategy: no overloaded “combines”.
Create your own controls and themes through clear base classes. No inheritance from “everything at once”.
Composition and simple interfaces instead of rigid hierarchies.
On-premise video communication: desktop clients on WUI (Windows / Linux).
UI based on libWUI: fast startup, minimal footprint, modern design.
We are ready to feature a case and logo after migration to WUI. Write to us at info@libwui.org.
# CMake (example)
find_package(libwui REQUIRED)
add_executable(app main.cpp)
target_link_libraries(app PRIVATE wui)
Supports CMake/Conan/Vcpkg — add it to your toolchain. Examples available in the repository.
#include <wui/wui.h>
int main(){ wui::app a; wui::window w{"Hello",{640,420}}; w.show(); return a.run(); }
Windows / Linux (Wayland/X11). macOS support — planned. For embedded systems — build without unnecessary dependencies.
Minimal overhead and fast startup. Rendering optimized for typical desktop cases. No redundant abstractions.
Yes. Theming via tokens and styles. Custom controls plug in without “breaking” the core.
Open-source Boost license. No fees for static linking.