Skip to content
vladyslav-kinzerskiy edited this page Jun 15, 2026 · 5 revisions

Theia

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.

What Theia gives you

  • A C++ actor runtime (GenServer / GenStateM / GenRunnable) with one thread per node, TIPC transport carrying nanopb wire bytes, and correlated request/reply via RemoteRef / 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 .art model into C++ daemons and into the four AUTOSAR deployment manifests (machine / application / service / execution) as JSON.

The abstraction ladder

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

Install

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 PATH

See Tutorial for the full clean-host walkthrough.

Wiki pages

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
Cross-Compiling-for-Other-Boards Cross-compile the runtime .deb to aarch64 boards (rpi4, BeagleBone AI-64, …)
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

Related wikis

Clone this wiki locally