celix icon indicating copy to clipboard operation
celix copied to clipboard

Rust feasbility

Open pnoltes opened this issue 2 years ago • 0 comments

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.

pnoltes avatar Jul 30 '23 20:07 pnoltes