ouisync
ouisync copied to clipboard
Networked swift bindings
This is a complete overhaul of the swift bindings with the following major changes:
- implemented the loopback authentication protocol developed on the
servicebranch - 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
closemethods are not exposed (but are called internally ondeinit) - 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 buildand command line coverage generation (cov.sh) - renamed from
OuisyncLibtoOuisync(the name collision with the UI is resolved by renaming its module toRunner)