celix
celix copied to clipboard
Rust feasbility
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:
- [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.