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.
website · Download Markdown