PARA Overview
PARA (PopcornSAR AUTOSAR Runtime for Adaptive Application) is an Adaptive AUTOSAR (AP) runtime developed by PopcornSAR, targeting the standard AUTOSAR Adaptive Platform R25-11. It provides runtime libraries, daemons, and a configuration framework so that Adaptive Applications running on high-performance automotive ECUs can use service-oriented communication, execution management, logging, and more through the standard AUTOSAR AP APIs (ara::*).
For unfamiliar terms (Function Group, manifest, APID, etc.), refer to the Glossary.
Provided Functional Clusters
PARA consists of Functional Cluster libraries (lib/libpara_*.so) that correspond to the standard ara:: namespaces. The main clusters are as follows.
| Library | ara:: namespace | Role | Runtime daemon |
|---|---|---|---|
libpara_core | ara::core | Foundational types such as Result, Future, ErrorCode, and containers | — |
libpara_com | ara::com | Service-oriented communication (SOME/IP) | CM |
libpara_exec | ara::exec | Execution management (process lifecycle and state reporting) | EM |
libpara_log | ara::log | Logging and tracing (DLT backend) | (dlt-daemon) |
Runtime Operation Model
The PARA runtime operates with two daemons and manifest-based startup. Understanding this model first makes the subsequent installation, example, and configuration documents much easier to follow.
| Daemon | Name | Role |
|---|---|---|
| Execution Manager | EM | The entry point of the runtime. It scans manifests to build a dependency graph and starts/stops processes. |
| Communication Manager | CM | Handles service-oriented communication (service discovery, SOME/IP binding). |
The startup flow is as follows.
- Configure the environment and run
EM. - EM transitions
MachineFG(Machine Function Group) fromOff→Startup. - Each process declares, via
state-dependenciesin its execution manifest, "in which state of which Function Group it should start." The platform processes (CM) and applications bound toMachineFG:Startupare started. - In other words, what to launch and when is decided by the manifest, not by code.
A Function Group is a bundle of processes that start/stop together and serves as a unit of state transition, while a manifest is the JSON configuration that holds those declarations. Details are covered in Function Group configuration and Execution configuration.
Next Steps
- Installation & Environment Setup — start with the prerequisites
- First Application — get started with examples
- Glossary