Brussels / 31 January & 1 February 2015


Modularizing C software with Apache Celix

Join the world of service oriented programming with all its benefits - but without its usually found shortcomings - with Apache Celix. Apache Celix is a framework for service oriented programming in C, with a focus on a low overhead, and a small footprint.

Service oriented programming brings a lot to table. It enables the design and development of software applications in small cohesive modules, which interact based on loosely coupled services.

In this presentation the history and concepts behind Apache Celix will be explained.

Apache Celix

With Apache Celix, C applications can be designed and developed in small modules. Modules run in the same process, but are not visible for each other. When developing applications with Apache Celix it is more natural and compelling to develop modules which do one thing (and do it well), and thus avoiding monolithic and complex applications.

Apache Celix has taken the approach to add the service oriented programming paradigm to the C language without deviating too much from developing plain C, and at the same time deliver a better solution for present-day challenges when working with ever increasing time to market demands and ever changing customer requirements (e.g. Agile Development).


Apache Celix follows the Java OSGi specification with some adaptations needed because of the language differences. The OSGi specification is an open standard specification, describing a framework for modular and service oriented development without entailing too much technical details. The specification contains a core specification, describing the minimal OSGi framework, and a considerable selection of compendium specifications: The Event Admin specification for async message, the Configuration Admin specification for decoupling code and configuration, the Remote Services specification for distributed development, to name but a few.


Pepijn Noltes