EUI-NEO is a cross-platform, high-performance, low-overhead C++17 UI framework with GLFW/SDL2 window backends and OpenGL/Vulkan render backends.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Requirements:
- CMake 3.14+
- A C++17 compiler: MSVC 19.29+ (Visual Studio 2019 16.11+), GCC/MinGW-w64 12+, or Clang 14+
- OpenGL development files for the default renderer
Add EUI-NEO under external/EUI-NEO, then create:
cmake_minimum_required(VERSION 3.14)
project(MyProject LANGUAGES C CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
add_subdirectory(external/EUI-NEO)
add_executable(my_app app.cpp)
eui_neo_configure_app(my_app)app.cpp:
#include "eui_neo.h"
namespace app {
const DslAppConfig& dslAppConfig() {
static const DslAppConfig config = DslAppConfig{}
.title("My App")
.pageId("my_app")
.windowSize(960, 640);
return config;
}
void compose(eui::Ui& ui, const eui::Screen& screen) {
ui.column("root")
.size(screen.width, screen.height)
.padding(32.0f)
.content([&] {
ui.text("title")
.text("Hello EUI-NEO")
.fontSize(28.0f)
.build();
})
.build();
}
} // namespace appBuild:
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --parallel
./build/my_appeui_neo_configure_app() adds the selected GLFW/SDL2 entry point, links eui::neo, applies platform executable settings, and deploys the runtime assets. The application does not reference files under core/.
The release SDK supports the same target setup:
find_package(EuiNeo CONFIG REQUIRED)
add_executable(my_app app.cpp)
eui_neo_configure_app(my_app)See the Integration Guide for installation, FetchContent, SDL2/Vulkan selection, and custom main loops. See Development And Release for building this repository and dependency requirements.
Xmake 3.0+ is supported for source builds and xrepo library consumers:
set_languages("cxx17")
add_requires("eui-neo")
target("my_app")
set_kind("binary")
add_files("main.cpp", "app.cpp")
add_packages("eui-neo")The xrepo package provides the eui_neo library; main.cpp owns the window
loop and application entry point. When building this repository directly,
the eui.app rule adds the selected platform entry point and deploys assets.
Build a repository example:
xmake f -m debug -y --apps=y --user_apps=y
xmake build gallery
xmake f -m release -y --apps=y --user_apps=y
xmake build galleryOn Windows, the executable is .xmake/build/windows/x64/<debug|release>/gallery.exe.
See the Integration Guide for backend options and other targets.
Optional feature modules live under modules/ and are documented in the Modules Guide.
assets/ Runtime assets: fonts, PNG, SVG, and icons
components/ Reusable UI components built on top of the DSL
core/ DSL, Runtime, primitives, text, image, network, and platform code
docs/ Implementation notes and API documentation
examples/ Standalone gallery and example application sources
modules/ Optional feature modules such as keyboard and serial
apps/ User application sources; flat .cpp files or app folders
include/ Public include path: eui_neo.h and eui/* facade headers
tests/ Probe sources, fixture apps, and local benchmark notes
3rd/ Vendored third-party build sources and single-file dependencies
- DSL Design And Current Implementation
- Components
- Modules
- State Model
- Layout
- Events
- Animation
- Async
- Render Backend Architecture And Pipeline
- Retained Layer Cache
- Images
- Network
- Platform Capabilities
- Integration Guide
- Shadertoy Primitive
- Development And Release
EUI-NEO's original source code is licensed under the Apache License 2.0. Third-party code under 3rd/, optional build-time dependencies fetched by CMake, and bundled fonts or icon fonts under assets/ follow their respective upstream licenses and copyright notices.
Thank you to everyone who has contributed code, improved the documentation, reported issues, or shared feedback with EUI-NEO.





