Apache Celix is a framework for C and C++14 to develop dynamic modular software applications using component and in-process service-oriented programming.
The Apache Celix framework is written in C and supports C++ through a header-only implementation. Another native language that is rapidly gaining popularity is Rust.
Adding Rust support to Apache Celix, ideally in the same manner as C++, would be a valuable enhancement.
Feasibility
Whether Apache Celix can support Rust needs to be first investigated. This can be done within the misc/experimental directory. The following steps require investigation:
[x] Starting/stopping a 'Hello World' bundle written in Rust
[x] Registering a C service in Rust using the C or C++ Apache Celix API
[x] Using a C service in Rust using the C or C++ Apache Celix API
[x] Creating a minimal wrapper/binding Rust library so that native Rust can be used on a Rust BundleContext object
[x] Creating a bundle activator Rust library without directly using the unsafe non-mangled C functions
[ ] Creating a bundle zip from cargo (potentially using a custom cargo command) or another method
Please note that not all steps need to be completed or possible to continue with Rust support for Apache Celix. However, a more seamless integration of Rust will be more achievable if all steps are feasible.
Rust Support
The Apache Celix framework is written in C and supports C++ through a header-only implementation. Another native language that is rapidly gaining popularity is Rust.
Adding Rust support to Apache Celix, ideally in the same manner as C++, would be a valuable enhancement.
Feasibility
Whether Apache Celix can support Rust needs to be first investigated. This can be done within the misc/experimental directory. The following steps require investigation:
Please note that not all steps need to be completed or possible to continue with Rust support for Apache Celix. However, a more seamless integration of Rust will be more achievable if all steps are feasible.