blob: ab63d231a3bce18167566891f5fc975f6afff72b [file] [log] [blame]
<!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.3.0/docs.html">2.3.0</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; 2024 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>