Architecture

AURA separates interface descriptions from application services. The scene graph and runtime remain in C++.

One format, two paths

aurac translates .aura into C++ at build time. The dynamic loader builds the same files at runtime. Your application uses the same typed interface in both modes. Shared schemas and rules keep both paths consistent.

The layers

Module Responsibility
aura-lang / aurac Language, parser, schema and C++ generator
aura-ui Scene graph, layout, text, input, animations and media
aura-core Bindings, tasks, timers, processes, data formats and devices
aura-net HTTP(S), servers, sessions, TLS and cryptography
aura-script JavaScript and Lua with a shared C++ API and limits
aura-remote Screenshots, events and scene data over HTTP
aura-preview Preview, headless rendering and editor protocol
aura-webview Optional Chromium/CEF inside the scene graph

The application context

The UI receives images, translations, theme values and other application data through aura::ui::Context. A custom context connects the framework to your application. AURA itself knows nothing about kiosk-specific orders or products.

Threads and lifetimes

The scene graph belongs on the UI thread. Background work delivers results through aura::post() or TaskRunner; observable values keep bindings current. The application documentation and lifetime rules explain the details.

Rendering

Skia draws 2D graphics and text. SDL3 handles windows, input and the GL context. Headless PNG output enables visual tests without a window. The graphics documentation explains rendering, layout and background work.

Build options

UI, networking, scripting and WebView can be configured separately. WebView requires CEF and is disabled by default. See Build and tools and WebView.

Documentation source: website · Download Markdown

Search for topics, widgets or APIs.