libwui — альтернатива Qt/QML для тех, кто хочет быстрые интерфейсы, маленькие бинарники и предсказуемый API. Никаких генераторов кода, минимум зависимостей, максимум контроля.
Open‑source. Без vendor lock‑in. Подходит для десктопа и встраиваемых систем.
Как выглядит код на libwui
// Минимальный пример: окно + кнопка
#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>("Нажми меня");
btn->on_click([]{ std::puts("clicked"); });
win.set_content(btn);
win.show();
return app.run();
}
Чистый C++: лямбды, std::function, никакой MOC.
Только то, что нужно для UI. Без десятков модулей (SQL, XML, 3D и т.д.), которые раздувают зависимости и усложняют поддержку.
Нативный std‑стек: шаблоны, лямбды, умные указатели. Прозрачная модель событий, без скрытой генерации кода.
Минимальный footprint и быстрый старт приложения — важны как для дистрибуции, так и для встраиваемых систем.
Нет внешних генераторов, меньше стадий сборки, меньше причин для «сломалось на агентах».
Документация и код идут рядом: меньше «магических» состояний, понятный жизненный цикл.
Никаких платных лицензий за право статической линковки и закрытый код; вы контролируете продукт.
Критерий | libwui | Qt / QML |
---|---|---|
Язык/модель | Чистый C++, события через std::function | Собственные сигналы/слоты, MOC, QML (JS) |
Сборка | Без генераторов кода, проще CI | moc/uic/rcc, длинные сборки |
Размер бинарников | Малый footprint | Существенно больше |
Зависимости | Минимальные | Много модулей и ABI‑слоёв |
Нативность UI | Фокус на кастомном современном UI | Widgets/QML, разная «нативность» по платформам |
Кривая обучения | Для C++ разработчиков — низкая | QML/JS, новая парадигма |
Лицензирование | Open‑source, без платы за стат. линковку | GPL/LGPL или дорогостоящая коммерческая |
Готовые компоненты | База + расширяемость | Большая библиотека виджетов |
* Оценки размеров и скорости зависят от конфигурации проекта; приведены как ориентиры.
Окна, контейнеры, кнопки, поля ввода, списки, панели, диалоги. Гладкие анимации там, где это уместно.
Стратегия «достаточный минимум»: без перегруженных «комбайнов».
Создавайте собственные контролы и темы через понятные базовые классы. Без наследования от «всего подряд».
Композиция и простые интерфейсы вместо жёстких иерархий.
On‑premise видеосвязь: десктоп‑клиенты на WUI (Windows / Linux).
UI на базе libWUI: быстрый старт, минимальный footprint, современный дизайн.
Готовы разместить кейс и логотип после миграции на WUI. Напишите нам на info@libwui.org.
# CMake (пример)
find_package(libwui REQUIRED)
add_executable(app main.cpp)
target_link_libraries(app PRIVATE wui)
Поддержка CMake/Conan/Vcpkg — добавьте в свой toolchain. Примеры доступны в репозитории.
#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 — в планах. Для встраиваемых систем — сборка без лишних зависимостей.
Минимальные оверхеды и быстрый старт. Отрисовка оптимизирована под типичные десктоп‑кейсы. Нет избыточных абстракций.
Да. Темизация через токены и стили. Кастомные контролы подключаются без «ломки» ядра.
Open‑source boost лицензия. Никаких платежей за статическую линковку.