ouisync icon indicating copy to clipboard operation
ouisync copied to clipboard

Networked swift bindings

Open za-creature opened this issue 1 year ago • 0 comments

This is a complete overhaul of the swift bindings with the following major changes:

  • implemented the loopback authentication protocol developed on the service branch
  • exposed all (known) RPCs exposed by the current library
  • all get* methods have been replaced with actual async getters
  • exposed subscriptions via AsyncStream, semantically equivalent to the dart api
  • memory management is now done implicitly via reference counting, the close methods are not exposed (but are called internally on deinit)
  • the bindings are now free from force unwraps (except one instance where Apple's API is weird)
  • ported dart tests with a current coverage of ~75%
  • imported documentation from dart wherever possible

Other QoL changes:

  • moved the relevant post-checkout script from the 'app' repo here (init.sh)
  • updated the build tools to support swift build and command line coverage generation (cov.sh)
  • renamed from OuisyncLib to Ouisync (the name collision with the UI is resolved by renaming its module to Runner)

za-creature avatar Jan 24 '25 16:01 za-creature