Current C-FFI - where do i need look for this?

Heyhey … sorry I’ve been a bit out of the loop lately [at least API-wise] …

I wanted to peek into the current state of client_libs and the now available interfaces a bit today but to be honest i’m a bit lost …
…there really were times where it was easier to understand how one might be able to create a library for additional languages (for example python…)

in the past we had:

  1. safe_authenticator
    – authenticating against the network and retrieving an App*
  2. safe_client_libs
    – interacting with the safe network
  3. libsystem_uri.dll
    – for creating a local uri-scheme for getting back the granted authentication

when I search for c-ffi / bindings / client_libs i find

  1. https://github.com/maidsafe/safe_client_libs
    – is this still the relevant library for interacting with safe via c ffi ? (in the wiki i see immutable and mutable data - didn’t we change data types?)
  2. https://github.com/maidsafe/safe-api

“In this repository you’ll find all that’s needed by any application which intends to connect and read/write data on The SAFE Network.”

but how do i do this from C - or is this just pointint to the CLI as entry point to safe?

  1. https://github.com/maidsafe/safe-api/tree/master/safe-ffi
    – is this ffi inside the safe-api the C bindings i’m looking for? if yes how do I build it?
  2. https://github.com/maidsafe/ffi_utils
    – or is this the place i was looking for? if yes how do I build it?
  3. https://github.com/maidsafe/safe_bindgen
    – or is this the place i was looking for? if yes how do I build it?
  4. i was thinking about using the .NET wrapper from python in a first step because this might be less hassle for a first win
    safe_app_csharp API Documentation | Safe Network :: safe_app_csharp API Documentation <<< this shows the docs for v0.3.0 is it possible to the to the docs for 0.3.1-rc2? (and I again see mutable and immutable data - is this still the way data is stored on safe?)

can someone please point me to the libraries i need to interact with a local baby fleming via a C FFI? … as I said i’m sadly a bit lost here and don’t really know where to start …

2 Likes

Hey @riddim,

To get the latest bindings for the C language you could directly build safe-ffi from the safe-api repo. You can generate the native libs for the safe-ffi and use those in your language wrapper libraries.

Steps

  • Clone safe-api.
  • cd safe-ffi.
  • To generate mock libs and bindings
cargo build --release --features="mock-network bindings"
  • To generate non-mock libs with bindings
cargo build --release --features="bindings"
  • Bindings will be generated at
safe-api/safe-ffi/binding/[c/csharp]
  • Native libs will be generated at
safe-api/target/release/safe_ffi.[dll/dylis/so]
4 Likes

thank you very much for your helpful reply @ravinderjangra !

(sorry super long working days lately for me…)

I’ll check it out as soon as I can [but might take me a few days …] I might get back to you with questions as soon as I have some time for testing again :slight_smile:

1 Like

nice! :slight_smile:

okay - this looks like a way more limited way to interact with the network than the safe_client_libs-api we used in the past but it looks way more intuitive to use as well!

I might have a chance to dig deeper tomorrow and to try actually using it :slight_smile: thank you very much for showing me the right starting point @ravinderjangra!

1 Like