Project Purpose

The purpose of this project is to enable programs written in C to work with interfaces defined in Franca IDL. This would allow writing application code for both clients and servers that does not depend on the communication mechanism between them (e.g., D-Bus, SOME/IP, in-process, etc.) For this to work, the application code needs to rely on a defined mapping of Franca IDL to C language constructs and on the corresponding run-time support. Additionally to that, the communication via a particular mechanism is implemented by the binding code that is generated automatically.

The following principles and constraints apply:

Usage Scenarios

The following usage scenarios are envisioned for Common API C. They are simultaneously the needs that provide the motivation for project.

Mapping Franca to C

The goals (possibly conflicting):

Comparison of Franca IDL Mappings is the working draft of the mapping.


The following Wiki pages are used to distill and document the project requirements:

Any issues and concerns that lack an agreed approach to address them are tracked as open questions. Once a proper resolution has been proposed, the resulting requirements are extracted and documented. The requirements go through the usual review and approval by the Expert Group.

All discussion related to the Common API C project should take place on the public GENIVI mailing list for IPC:

Proof of concept implementation is hosted on public GENIVI git:

Bug tracker is hosted on public GENIVI JIRA

Related Work

The following projects are related to Common API C:

The following projects could be used by Common API C as run-time dependencies:

The following libraries implement complex data types in C:

The following projects implement messaging via different transports including in-process:

The following efforts target serialization/deserialization of parameters:

The following efforts are related to IPC benchmarking:

The following libraries implement a main event loop:

The following projects are related to parsing, code generation and analysis:

Minutes and Presentations