title |
---|
Subprojects |
The Apache Celix project is organized into several libraries, bundles, group of bundles and examples.
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++14.
- Utils - The Celix utils library, containing a wide range of general utils and OSGi supporting types (properties, version, filter, string utils, file utils, etc).
Apache Celix also provides several standalone libraries which can be used without the framework:
- ETCD library - A C library that interfaces with ETCD.
- Promises library - A C++17 header only adaption and implementation of the OSGi Promise specification.
- Push Streams Library - A C++17 header adaption and only implementation of the OSGi Push Stream specification.
- Dynamic Function Interfacy Library - A C library, build on top of libffi, to dynamical create C function proxies based on descriptor files.
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
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++ 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.