Loading...
 

History: Why Syncthing

Preview of version: 25

What was Syncthing picked over the many alternatives?

Context

Please see: Files vs web pages. In the context of WikiSuite, we already have two software components that manage files

  • ClearOS Flexshare, which provides s standard file server, with three interfaces (1- Web (HTTP/HTTPS), 2- FTP (FTP/FTPS) 3- File Shares (Samba)
    • However it has the weaknesses of standard files and folders: no meta data, file needs to be in only one folder, or it's duplicated, hard to segment permissions, etc.
  • Tiki File Galleries, which provide virtual folders and sub-folders which are web accessible. This abstraction layer permits multiple features: archives (previous versions of a file can still be accessed), check-in / check-out / lock, etc. and it leverages Tiki's multitude of built-in features: search (including file content), share secret link to file via email, permissions, etc. It's even possible to use as a field type in Tiki Trackers, a powerful and flexible database, form and report creator.
    • However, it has the weakness that the only reliable interface is the web interface
      • Which forces to download files, edit them locally, and re-upload. WebDAV support is meant to solve this, but it's not been the most reliable. The main Free / Libre / Open Source library in PHP is
      • It is not suitable when you have a set of files generated by an external system or that need to maintain internal links. Please see enhancement being planned: https://dev.tiki.org/File-Gallery-direct-file-mapping-mode


By using each tool when it's appropriate, we have a good solution for most use cases. However, file sync was missing. A extensive analysis of all available Free / Libre / Open Source software was conducted. And Syncthing was deemed the best to complete the feature set.

Beyond satisfying the usual component criteria, Syncthing's P2P design is awesome.

  • P2P by default, so same software on all nodes. Central server is just a convention.
    • This is much less work that having different code bases to manage
    • It is designed from the ground up to sync any number of nodes. So a node can get data updates from any other node.
  • Syncthing is written in Go, which has fantastic performance (which is important when you have a lot of files)
  • Default interface is a Bootstrap admin panel, and clients can make alternate interfaces such as Syncthing-GTK for better integration with operating system.
  • https://github.com/syncthing/syncthing/blob/master/GOALS.md

Why not ownCloud / Nextcloud

Why not Seafile

  • Seafile is an interesting project but
    • The server and clients are different code bases, which is bigger long term workload.
    • Can't do P2P sync. Everything needs to go via central server.

Why not Pydio

  • Pydio is an interesting project but
    • The server and clients are different code bases, which is bigger long term workload.
    • Can't do P2P sync. Everything needs to go via central server.

Why not SparkleShare

  • SparkleShare is an interesting project but
    • It's based on Git whereas Syncthing uses the Block Exchange Protocol which is more suited for this use case
    • Can't do P2P sync. Everything needs to go via central server.

Why not LinShare

  • LinShare is an interesting project but it is for file sharing and not file sync. File sharing is covered by Tiki file galleries

See also

History

Advanced
Information Version
Marc Laporte 57
View
Marc Laporte We'll remove the dependency on ClearOS. Tiki and Syncthing will interoperate directly (one day!) 56
View
Marc Laporte 55
View
Marc Laporte https://doc.tiki.org/WebDAV has been revamped for Tiki20! 54
View
Marc Laporte 53
View
Marc Laporte 52
View
Marc Laporte 51
View
Marc Laporte 50
View
Marc Laporte 49
View
Marc Laporte 48
View
Marc Laporte 47
View
Marc Laporte 46
View
Marc Laporte 45
View
Marc Laporte 44
View
Marc Laporte mouseover Plugin modified by editor. 43
View
Marc Laporte 42
View
Marc Laporte 41
View
Marc Laporte 40
View
Marc Laporte 39
View
Marc Laporte 38
View
Marc Laporte 37
View
Marc Laporte Removing part about WebDAV for Syncthing since they use another protocol for Sync: https://github.com/nextcloud/client/blob/master/doc/dev/sync-algorithm.md Thank you Benoit 36
View
Marc Laporte 35
View
Marc Laporte 34
View
Marc Laporte 33
View
Marc Laporte 32
View
Marc Laporte 31
View
Marc Laporte 30
View
Marc Laporte 29
View
Marc Laporte 28
View
Marc Laporte 27
View
Marc Laporte 26
View
Marc Laporte 25
View
Marc Laporte 24
View
Marc Laporte 23
View
Marc Laporte 22
View
Marc Laporte 21
View
Marc Laporte 20
View
Marc Laporte 19
View
Marc Laporte 18
View
Marc Laporte 17
View
Marc Laporte 16
View
Marc Laporte 15
View
Marc Laporte 14
View
Marc Laporte 13
View
Marc Laporte 12
View
Marc Laporte 11
View
Marc Laporte 10
View
Marc Laporte 9
View
Marc Laporte 8
View
  • «
  • 1 (current)
  • 2