Инструменты27 сентября 2026 г., 11:47 МСК🤖 Auto

EUI-NEO: Легкий C++17 UI-фреймворк с Vulkan/OpenGL

Появился кроссплатформенный фреймворк EUI-NEO, предлагающий низкие накладные расходы, поддержку GLFW/SDL2 и рендеринг через OpenGL/Vulkan.

Баннер новости 8365

Технический стек и требования

EUI-NEO — это высокопроизводительный UI-фреймворк, написанный на C++17. Архитектура проекта разделена на бэкенды оконной системы (GLFW или SDL2) и графические рендереры (OpenGL или Vulkan). Для сборки требуется CMake 3.14+ и компилятор, поддерживающий стандарт C++17: MSVC 19.29+, GCC/MinGW-w64 12+ или Clang 14+.

Архитектура и DSL

Ключевая особенность EUI-NEO — использование декларативного языка спецификаций (DSL) для описания интерфейса. Разработчики могут создавать компоненты, используя цепочечные вызовы методов, что упрощает чтение кода. Фреймворк включает встроенные модули для работы с текстом, изображениями, сетью, анимацией и асинхронными операциями.

Структура проекта

Репозиторий организован модульно, что позволяет подключать только необходимые части. Основные директории включают core/ (DSL, рантайм, примитивы), components/ (переиспользуемые UI-компоненты) и modules/ (дополнительные функции, такие как работа с клавиатурой и последовательным портом).

Компонент Описание
Window Backend GLFW или SDL2
Render Backend OpenGL (по умолчанию) или Vulkan
Язык C++17
Лицензия Apache 2.0 (основной код)
Мин. версия CMake 3.14

Интеграция и использование

Интеграция в проект осуществляется через add_subdirectory или find_package для релизной версии SDK. Пример базового приложения показывает создание окна размером 960x640 с заголовком "My App" и текстовым элементом. Фреймворк автоматически настраивает точку входа, линкует библиотеку eui::neo и применяет платформозависимые настройки исполняемого файла.

Для кого этот проект

EUI-NEO ориентирован на разработчиков, которым нужен легкий, быстрый и кроссплатформенный инструмент для создания нативных интерфейсов без тяжелых зависимостей. Поддержка Vulkan делает его привлекательным для приложений, требующих высокой производительности графики, а модульная структура позволяет легко адаптировать его под специфические задачи.

Источник: Github ↗