Aria 2.0.0
C++23 MVVM framework (C++20 minimum) — reactive, coroutine-first, ABI-layered
Loading...
Searching...
No Matches
Aria Documentation

An MVVM framework supporting C++23, with C++20 as the minimum — one core, every platform.


Getting Started

  • Getting Started → — build, first Property, Computed, Command, ObservableList, Validation, Async, and a real ViewModel in 5 minutes.
  • AriaTools → — the single flagship cross-platform application for Qt, iOS, Android, and Web.

Guides

Step-by-step, chapter-style documentation for library users:

# Chapter Description
1 Reactive Core Property<T>, Computed<T>, Effect, Subscription, batch, untracked
2 ViewModel ViewModel base class, lifecycle, child composition, ViewModelScope, destroy hooks, common patterns
3 Async & Coroutines Task<T>, AsyncCommand, AsyncResource, with_timeout, when_any, when_all, CancellationToken
4 Collections ObservableList<T>, FilteredList, SortedList, MappedList, DistinctList, PagedList, GroupedList, ListChange
5 Validation Validator<T>, FormValidator, ValidationState, ValidationKey, async rules
6 View Binding BindingEngine, IViewAdapter, IView, Converter, two-way binding, feedback-loop suppression
7 Navigation Navigator, push/pop/clear, push_for_result<R>, Modal vs Push, deep-link routing
8 Diagnostics & Debugging TraceEvent, TraceSink, GraphInspector, ScopedTraceSink, disabled tracing fast path
9 Adapters Platform-specific integration guides

Adapter Guides

Adapter Guide Platform
Qt6 qt6.md Desktop (Qt 6.x)
AppKit appkit.md macOS native
UIKit uikit.md iOS native
JNI / Android jni.md Android (NDK + Compose)
HTTP / REST / SSE http.md Browser (thin client)

Cookbook

Task-oriented recipes — short, self-contained, grounded in shipped APIs:

# Recipe
Cookbook index
1 Form with sync + async rules
2 Cross-field rule
3 List: filter + sort + selection
4 Pull-to-refresh + infinite scroll
5 Theme / Locale switching
6 with_timeout + when_any race
7 View-destroy cancellation
8 Writing a new IViewAdapter

The public API reference is generated from main. See the 2.0 migration guide when upgrading. To build the same Doxygen reference locally: cmake -B build/flavors/docs -DARIA_BUILD_DOCS=ON && cmake --build build/flavors/docs --target aria_docsbuild/flavors/docs/docs/html/index.html.

Reference

Contract documents for framework developers and advanced users:

Document Description
API Style Contract Naming, namespace, include-path, error-message, template-diagnostic, deprecation rules
Lifecycle & Threading Thread-affinity, subscription release, view-destroy, coroutine race model
Error Model ErrorKind taxonomy, aria::Error, per-surface protocol, when to throw vs set
Diagnostics Protocol TraceEvent, TraceSink, per-subsystem hook points, disabled tracing fast path
List Diff Contract ListChangeKind, event semantics, deterministic ordering, adapter conformance
Performance Baselines Complexity bounds, measured baselines, anti-patterns

Architecture

  • Architecture → — layer model, ABI stability, memory ownership, coroutine race model.

RFCs

Roadmap