Enable easy C-Bindings for Mobile

Estimated date of completion: {Enter date}

Resources Required for 2025H2: TODO

Ensure that nim-ffi’s resulting bindings are usable on mobile platforms: iOS and Android. Also enhance nim-ffi by using protobuf instead of JSON to pass data across the bindings, enabling usage of protobuf generation libraries.

FURPS

See deliverables.

Risks

Risk(Accept, Own, Mitigation)
Mobile cross-compilationThis is not a straightforward functionality delivery. Do note that most of the c-bindings works is already done.
Nim macrosNim messaging team have limited experience with Nim macros, potentially impacting the speed of delivery.

Deliverables

Ensure nim-ffi’s resulting libraries work for mobile platforms

Owner: Nim Messaging Team

Feature: Nim FFI

FURPS:

  • S2. The exposed C library can be used in Logos Core for mobile: iOS and Android.

Streamline FFI API Creation by using Protobuf types instead of JSON PoC

Owner: Nim Messaging Team

Feature: Messaging SDK

FURPS:

  • F8. When wrapping the C API, conversion from native types to Protobuf is needed by the wrapper (PoC).

  • U7. When wrapping the C API, a protobuf definition can be used to generate native types for the host language (PoC).

Checklist:

  • Specs: link to specs and/or API definition
  • Code: link to GitHub issues/PRs/Epic
  • Dogfood: link to dogfooding session/artefact
  • Docs: links to README.md or docs.waku.org (TBD)