Project Xent's platform-neutral standard control protocol, retained Host, and declarative runtime, written in C23. Imperative code and declarative views use the same control descriptors, properties, events, handles, and atomic batches.
xtk_descriptor.handxtk_catalog.hdefine the standard control/property/ event vocabulary.xtk_batch.his the mutation wire format. A Host validates, prepares, and atomically commits one batch or leaves the live tree unchanged.xtk_host.his the retained Host ABI.xtk_scene.hand the generatedxtk_controls.hprovide typed imperative conveniences over it.xtk.hbuilds transient declarative element trees. The reconciler emits only publicXtkBatchoperations and publishes its new composition after commit.xtk_msg.hsupplies the bounded message/update/view runtime. Messages drain before one build/reconcile/commit per frame.xtk_component.hdefines transactional Components and typed, Scene-scoped Providers. Component state belongs to the Host, not the transient tree.
Sibling identity is either positional or keyed. String keys remain useful for
diagnostics; xtk_keyed_u64 provides allocation-free scalar identity. Keyed
matching is O(n), reuses retained capacity, and emits ordered moves.
Virtualization is a control-neutral retained-region contract: the runtime asks the Host for a viewport and publishes the realized range. ListView, GridView, ItemsView, and custom Components can share that seam without a list-specific Host ABI.
| Backend | Platform | Repo |
|---|---|---|
| fluxent | Windows (D3D11/D2D/DComp) | fluxent |
xmake
xmake test
xmake run test_xtk_reconcile_txnThe test gate includes Host atomicity, allocation failures, Components, Providers, generated catalog coverage, event routing, virtualization, reconciliation, and static/revisioned regions.
0BSD