Franca IDL

Franca Interface Definition Language (Franca IDL) is a formally defined, text-based interface description language. It is part of the Franca framework, which is a framework for definition and transformation of software interfaces. Franca applies model transformation techniques to interoperate with various interface description languages (e.g., D-Bus Introspection language, Apache Thrift IDL, Fibex Services).

Franca is a powerful framework for definition and transformation of software interfaces. It is used for integrating software components from different suppliers, which are built based on various runtime frameworks, platforms and IPC mechanisms. The core of it is Franca IDL(Interface Definition Language), which is a textual language for specification of APIs.

History
The initial version of Franca was developed by the GENIVI Alliance, now called COVESA (Connected Vehicle Systems Alliance), in 2011 being a common interface description language used for the standardization of an In-Vehicle Infotainment (IVI) platform. The first public version of Franca was released in March 2012 under the Eclipse Public License, version 1.0. In 2013, Franca has been proposed as an official Eclipse foundation project. Franca is mainly developed by the German company Itemis.

Features
Franca IDL provides a range of features for the specification of software interfaces:
 * declaration of interface elements: attributes, methods, broadcasts
 * major/minor versioning scheme
 * specification of the dynamic behaviour of interfaces based on finite-state machines (Protocol State Machines, short: PSM)
 * storage of meta-information (e.g., author, description, links) using structured comments
 * user-defined data types (i.e., array, enumeration, structure, union, map, type alias)
 * inheritance for interfaces, enumerations and structures

Architecture
In addition to the text-based IDL for the specification of interfaces, Franca provides an HTML documentation generator.

Franca is implemented based on the Eclipse (software) tool platform. For the definition of the actual Franca IDL, the Xtext framework is used. For the user of Franca, this offers a list of benefits for the activity of reviewing and specifying software interfaces.