-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Theia is an Adaptive-AUTOSAR-Platform-style framework: a set of
Functional Clusters (FCs) running as supervised POSIX processes on a custom
C++ actor runtime ("the Theia runtime"), with the whole system modeled in
the artheia .art DSL and built with Bazel.
It is a standalone git repository carrying artheia/ and
third_party/etcd-cpp-apiv3/ as git submodules. You do not edit Theia's own
tree to build an application — you scaffold a separate consuming workspace
with theia init, bound to an installed /opt/theia prefix (the
/opt/ros/<distro> analogue). Theia's own apps/ directory is the framework
dogfooding that same flow in CI.
- A C++ actor runtime (
GenServer/GenStateM/GenRunnable) with one thread per node, TIPC transport carrying nanopb wire bytes, and correlated request/reply viaRemoteRef/RemoteCodec. - A supervisor that fork/exec's the FC daemons, owns their lifecycle and Function-Group state, runs a heartbeat watchdog, and exposes a control surface — Theia's realization of AUTOSAR Execution Management.
- Six real service FCs (
com,log,per,sm,ucm,shwa) plus the AUTOSAR-named placeholders, all declared in.art. - A code-generation pipeline that turns the
.artmodel into C++ daemons and into the four AUTOSAR deployment manifests (machine / application / service / execution) as JSON.
Everything in .art rests on three primitives:
| Primitive | Is a | Owns |
|---|---|---|
| node | thread | one TIPC type/instance, ports, a GenServer / GenStateM / GenRunnable
|
| composition | process (one executable) | prototypes (node instances) + in-process wiring (connect) |
| cluster | distribution bundle | compositions + inter-process wiring; the deploy / packaging unit |
Theia ships as Debian packages under /opt/theia (built per-Ubuntu:
_ubuntu22.04_ / _ubuntu24.04_). The Python tooling (artheia, rf-theia)
ships on PyPI. The short version:
# framework debs from the GitHub release (add runtime, runtime-dev, services, services-dev)
sudo apt-get install -y ./theia-*_ubuntu22.04_*.deb
# the Python tooling into your own venv
pip install artheia rf-theia
source /opt/theia/setup.bash # exports THEIA_ROOT=/opt/theia, puts `theia` on PATHSee Tutorial for the full clean-host walkthrough.
| Page | What's in it |
|---|---|
| Tutorial | Primary getting-started: install from release debs + PyPI, scaffold a workspace, run the stack |
| Architecture | The runtime, the supervisor, and the FC catalog |
| Deployment-Manifest-Generation-and-Serialization | The .art → manifest → JSON pipeline and its commands |
| Manifest-Structure-and-ARA-Requirements | Adaptive-AUTOSAR doctrine and how Theia realizes it |
| Configuration-and-Migration | params (static RO JSON) vs config (etcd proto), and the config-schema migration tooling |
| Advanced-Tools |
tdb, rtdb, and the supervisor GUI |
| MCP-and-Skills | The artheia + rf-theia MCP servers and the Claude Code skills |
-
artheia — the
.artDSL, parser, generators, and manifest model: https://github.com/perotheia/artheia/wiki - rf-theia — the Robot Framework + TPT testing harness: https://github.com/perotheia/rf-theia/wiki