Fork me on GitHub
Edit on GitHub << back to documentation

Apache Celix - Libraries and Bundles

The Apache Celix project is organized into several libraries, bundles, group of bundles and examples.

Core Libraries

The core of Apache Celix is realized in the following libraries:

  • Framework - The Apache Celix framework, an implementation of OSGi adapted to C and C++11.
  • Utils - The Celix utils library, containing a wide range of general utils and OSGi supporting types (properties, version, filter, string utils, file utils, etc).

Standalone Libraries

Apache Celix also provides several standalone libraries which can be used without the framework:

When using Conan as build system, these libraries can be build standalone using the following commands:

  • ETCD library: conan create . -b missing -o build_celix_etcdlib=True
  • Promises library: conan create . -b missing -o build_promises=True
  • Push Streams Library: conan create . -b missing -o build_pushstreams=True
  • Dynamic Function Interfacy Library: conan create . -b missing -o build_celix_dfi=True

Bundles or Groups of Bundles

Modularization is an important aspect of OSGi. Apache Celix provides several bundles or groups of bundles which extend the Apache Celix functionality. Most of these bundles are based on the OSGi specification and are adapted to C or C++.

  • HTTP Admin - An implementation for the OSGi HTTP whiteboard adapted to C and based on civetweb.
  • Log Service - A Log Service logging abstraction for Apache Celix.
    • Syslog Writer - A syslog writer for use in combination with the Log Service.
  • Shell - A OSGi C and C++11 shell implementation, which can be extended with shell command services.
  • Pubsub - An implementation for a publish-subscribe remote message communication system.
  • Remote Services - A C adaption and implementation of the OSGi Remote Service Admin specification.
  • C++ Remote Services - A C++17 adaption and implementation of the OSGi Remote Service Admin specification. Requires manually or code-generated import/export factories to work.
  • Components Ready Check - A bundle which checks if all components are ready.


The Apache Celix provides several examples showing how the framework and bundles can be used. These examples are configured in such a way that they can also be used together with an installed Apache Celix.