
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="">
    <meta name="author" content="">

    <title>Subprojects / Apache Celix</title>

    
    <link rel="icon" href="/assets/img/favicon.ico">

    
    <link href="/assets/css/bootstrap.min.css" rel="stylesheet">

    
    <link href="/assets/css/style.css" rel="stylesheet">

    <style>
         
         
        .card-body img {
            max-width: 100%;
            width: 100%;
            height: auto;
        }

         
        .card-body img + em {
            text-decoration: underline;
        }
    </style>

    
<script>
  var _paq = window._paq = window._paq || [];
   
  _paq.push(['disableCookies']);
   
  _paq.push(['trackPageView']);
  _paq.push(['enableLinkTracking']);
  (function() {
    var u="https://analytics.apache.org/";
    _paq.push(['setTrackerUrl', u+'matomo.php']);
    _paq.push(['setSiteId', '9']);
    var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
    g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
  })();
</script>


</head>
<body class="light-grey">

<a href="https://github.com/apache/celix" class="github-ribbon">
    <img src="/assets/img/forkme_right_red_aa0000.png" alt="Fork me on GitHub">
</a>


<nav class="navbar navbar-expand-lg navbar-dark bg-primary fixed-top">
    <div class="container">
        <a class="navbar-brand" href="/">
            <img src="/assets/img/celix-white.svg" height="40" class="d-inline-block align-top" alt="Celix Logo">
        </a>
        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
            <span class="navbar-toggler-icon"></span>
        </button>
        <div class="collapse navbar-collapse" id="navbarResponsive">
            <ul class="navbar-nav ml-auto">
                <li class="nav-item">
                    <a class="nav-link" href="/">Home</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="/download.cgi">Download</a>
                </li>
                <li class="nav-item dropdown active">
                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                        Docs
                    </a>
                    <div class="dropdown-menu" aria-labelledby="ddDocs">
                        <a class="dropdown-item" href="/docs/2.4.0/docs.html">2.4.0 (latest)</a>
                        <a class="dropdown-item" href="/docs/2.2.1/docs.html">2.2.1</a>
                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
                    </div>
                </li>
                <li class="nav-item dropdown">
                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                        Contributing
                    </a>
                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                        <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                        <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
                        <hr>
                        <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                        <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                        <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
                    </div>
                </li>
                <li class="nav-item dropdown">
                    <a class="nav-link dropdown-toggle" href="#" id="ddSupport" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                        Support
                    </a>
                    <div class="dropdown-menu" aria-labelledby="ddSupport">
                        <a class="dropdown-item" href="/support/mailing-list.html">Mailing Lists</a>
                        <a class="dropdown-item" href="/support/issue-tracking.html">Issue Tracking</a>
                    </div>
                </li>
                <li class="nav-item dropdown">
                    <a class="nav-link dropdown-toggle" href="#" id="ddFoundation" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                        ASF
                    </a>
                    <div class="dropdown-menu" aria-labelledby="ddFoundation">
                        <a class="dropdown-item" href="https://www.apache.org/">ASF Home</a>
                        <a class="dropdown-item" href="https://www.apache.org/foundation/how-it-works.html">How it works</a>
                        <a class="dropdown-item" href="https://www.apache.org/licenses/">License</a>
                        <a class="dropdown-item" href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a>
                        <a class="dropdown-item" href="https://www.apache.org/foundation/thanks.html">Thanks</a>
                        <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                    </div>
                </li>
            </ul>
        </div>
    </div>
</nav>


<div class="section">
    <div class="container">
        <div class="row py-4">
            <div class="col-sm-12 card">
                <div class="card-body pt-5">
                    
                    
                        
                        
                            <a class="edit-on-gh" href="https://github.com/apache/celix/edit/master/documents/subprojects.md" title="Edit this page on GitHub">Edit on GitHub</a>
                        
                    

                    
                        
                        <a href="/docs/2.4.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
                    

                    
	<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements.  See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License.  You may obtain a copy of the License at
   
    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<h1 id="apache-celix---libraries-and-bundles">Apache Celix - Libraries and Bundles</h1>
<p>The Apache Celix project is organized into several libraries, bundles, group of bundles and examples.</p>
<h2 id="core-libraries">Core Libraries</h2>
<p>The core of Apache Celix is realized in the following libraries:</p>
<ul>
<li><a href="../libs/framework">Framework</a> - The Apache Celix framework, an implementation of OSGi adapted to C and C++11.</li>
<li><a href="../libs/utils/README.html">Utils</a> - The Celix utils library, containing a wide range of general utils and
OSGi supporting types (properties, version, filter, string utils, file utils, etc).</li>
</ul>
<h2 id="standalone-libraries">Standalone Libraries</h2>
<p>Apache Celix also provides several standalone libraries which can be used without the framework:</p>
<ul>
<li><a href="../libs/etcdlib/README.html">ETCD library</a> - A C library that interfaces with ETCD.</li>
<li><a href="../libs/promises/README.html">Promises library</a> - A C++17 header only adaption and implementation of the OSGi Promise specification.</li>
<li><a href="../libs/pushstreams/README.html">Push Streams Library</a> - A C++17 header adaption and only implementation of the OSGi Push Stream specification.</li>
<li><a href="../libs/dfi/README.html">Dynamic Function Interfacy Library</a> - A C library, build on top of libffi, to dynamical create C function proxies based on descriptor files.</li>
</ul>
<p>When using Conan as build system, these libraries can be build standalone using the following commands:</p>
<ul>
<li>ETCD library: <code>conan create . -b missing -o build_celix_etcdlib=True</code></li>
<li>Promises library: <code>conan create . -b missing -o build_promises=True</code></li>
<li>Push Streams Library: <code>conan create . -b missing -o build_pushstreams=True</code></li>
<li>Dynamic Function Interfacy Library: <code>conan create . -b missing -o build_celix_dfi=True</code></li>
</ul>
<h2 id="bundles-or-groups-of-bundles">Bundles or Groups of Bundles</h2>
<p>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++.</p>
<ul>
<li><a href="../bundles/http_admin/README.html">HTTP Admin</a> - An implementation for the OSGi HTTP whiteboard adapted to C and based on civetweb.</li>
<li><a href="../bundles/logging/README.html">Log Service</a> - A Log Service logging abstraction for Apache Celix.
<ul>
<li><a href="../bundles/logging/log_writers/syslog_writer">Syslog Writer</a> - A syslog writer for use in combination with the Log Service.</li>
</ul>
</li>
<li><a href="../bundles/shell/README.html">Shell</a> - A OSGi C and C++11 shell implementation, which can be extended with shell command services.</li>
<li><a href="../bundles/pubsub/README.html">Pubsub</a> - An implementation for a publish-subscribe remote message communication system.</li>
<li><a href="../bundles/remote_services">Remote Services</a> - A C adaption and implementation of the OSGi Remote Service Admin specification.</li>
<li><a href="../bundles/cxx_remote_services/README.html">C++ Remote Services</a> - A C++17 adaption and implementation of the OSGi Remote Service Admin specification. Requires manually or code-generated import/export factories to work.</li>
<li><a href="../bundles/components_ready_check/README.html">Components Ready Check</a> - A bundle which checks if all components are ready.</li>
</ul>
<h2 id="examples">Examples</h2>
<p>The Apache Celix provides several <a href="../examples/celix-examples">examples</a> 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.</p>


                </div>
            </div>
        </div>
    </div>
</div>


<footer class="py-3 bg-secondary">
    <div class="container">
        <div class="row">
            <div class="col-md-8 text-center">
                <p class="m-0 text-white">
                    Copyright &copy; 2023 The Apache Software Foundation, Licensed under
                    the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
                    <br>
                    Apache Celix, Celix, Apache, the Apache feather logo and the Apache Celix logo are trademarks of The Apache Software Foundation.
                </p>
            </div>
            <div class="col-md-4 text-center">
                <a href="https://www.apache.org/events/current-event.html" target="_blank">
                    <img src="https://www.apache.org/events/current-event-234x60.png" title="Apache Event" width="234" height="60" border="0">
                </a>
            </div>
        </div>
    </div>
</footer>


<script src="/assets/js/jquery.min.js"></script>
<script src="/assets/js/bootstrap.bundle.min.js"></script>


</body>
</html>
