BasicSync


https://github.com/chenxiaolong/BasicSync

N/A

License used:

GPL-3.0

Category:

Cloud Storage & File Sync

Summary:

BasicSync is a simple app for running Syncthing on Android.

Description:

Features

  • Supports Android 9 and newer
  • Supports importing and exporting the configuration
  • Supports pausing syncing based on network and battery conditions
  • Supports Android's HTTP proxy settings
  • Runs Syncthing as a library in the main process
    • This makes BasicSync immune to Android >=12's child process restrictions
  • Small additions to Syncthing's web UI to add a folder picker and QR code scanner

Limitations

  • Android's Storage Access Framework is not supported. While, with effort, it's possible to implement a custom filesystem backend for Syncthing, SAF is not well suited for Syncthing's file access patterns.

    • Accessing files by path is extremely expensive. For example, accessing a/b/c requires stating every file in directories a and b. This is unavoidable without caching.
    • Syncthing is much more efficient when it can monitor for changes with inotify-style watchers. While it is technically possible to monitor for changes to directories with SAF, it does not report what changed. Computing the changes is an expensive operation. SAF also does not support watching files, only directories.
    • Creating and opening files are two separate operations, which can result in concurrency issues and file conflicts. Furthermore, attempting to create a file that already exists results in Android creating a new file with a numbered suffix instead of returning an error.