|Stable release||0.8.11 / 9 January 2014|
|Type||Interface description language framework|
|License||Eclipse Public License 1.0|
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).
The initial version of Franca was developed by the GENIVI consortium 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.
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
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.
- Official website (at Eclipse Labs)
- Klaus Birken. "Franca – Defining and Transforming Interfaces". Retrieved 2014-03-31.
|This programming-language-related article is a stub. You can help Wikipedia by expanding it.|