An AUTOSAR-Adaptive-Platform-style framework — Functional Clusters running as supervised processes on a custom C++ actor runtime, with the whole system modeled in a small declarative DSL and built with Bazel.
You describe your system in .art — nodes (threads with typed ports),
compositions (processes), clusters (deploy units) — and the toolchain generates
the C++ scaffolds, wire types, deploy manifests, and supervision tree.
node atomic Counter {
tipc type=0x80020001 instance=0
ports {
receiver ticks_in requires TickStream // inbound stream
server ctl provides ModeCtl // request/reply surface
}
}
composition DemoProc { // a process
prototype Counter counter
prototype Driver driver
connect driver.ticks_out to counter.ticks_in
}| Repo | What | Docs |
|---|---|---|
| theia | The framework: the C++ actor runtime (GenServer/GenStateM/GenRunnable), the OTP-style supervisor, the ARA service Functional Clusters, and the Bazel build + .deb packaging. |
Wiki |
| artheia | The .art system-description DSL + code generators (C++ scaffolds, .proto, manifests, netgraphs) and the LSP that powers editor support. |
Wiki |
| rf-theia | The Robot Framework testing harness — drives the live supervisor, reads the trace feed, and asserts end-to-end signal flow across clusters. | Wiki |
📖 Start with the Theia wiki — architecture, the deployment/manifest pipeline, a step-by-step tutorial, and the MCP/skills integration.
Install the framework, scaffold your own workspace, generate + build an app:
pip install artheia # the DSL + generators (artheia, artheia-lsp)
theia init # scaffold a consuming workspace
artheia gen-app --kind fc app.art --out apps --proto-out platform/proto
bazel build //apps/... # compiles against the Theia runtimeSee each repo's README for details. Licensed under Apache-2.0.