Technology
Syncthing is written in Go and implements its own, equally free Block Exchange Protocol. It is a BYO cloud model where users provide the hardware it runs on. It supportsInfrastructure
Device discovery is achieved via publicly-accessible discovery servers hosted by the project developers, local (LAN) discovery via broadcast messages, device history and static host name/addressing. The project also provides the Syncthing Discovery Server program for hosting one's own discovery servers, which can be used alongside or as a replacement for the public servers. The network of community-contributed relay servers allows devices behind different IPv4 NAT firewalls to communicate by relaying encrypted data via a third party. The relay is similar to the TURN protocol, with the traffic TLS-encrypted end-to-end between devices (thus even the relay server cannot see the data, only the encrypted stream). Private relays can also be set up and configured, with or without public relays, if desired. Syncthing automatically switches from relaying to direct device-to-device connections if it discovers a direct connection has become available. Syncthing can be used without any connection to the project or community's servers: upgrades, opt-in usage data, discovery and relaying can all be disabled or configured independently, thus the mesh and its infrastructure can all be run in a closed system for privacy or confidentiality.Configuration and management
Syncthing can be configured via a web browser either locally or remotely (and supports access via proxy server), but it is also possible to edit the configuration file directly. The REST and Events APIs or one of the community-contributed wrapper programs. Links to Docker images are also provided on the community contributions page, as well as links to supported configuration management solutions such as Puppet, Ansible and others.Reception
* In episode 456 of ''SecurityNow!'', host Steve Gibson praised Syncthing as a potential open-source replacement for BitTorrent Sync, and again referenced it in episodes 603, 698, 727, and in more detail in episodes 734 and 781. * A reviewer in LWN writes "Syncthing leaves a favorable impression. The developers seem to have done the work to create a system that is capable, reliable, secure, and which performs reasonably well. But they have also done the work to make it all easy to set up and make use of — the place where a lot of free-software projects seem to fall down. It is an appealing tool for anybody wanting to take control of their data synchronization and replication needs."History
The initial public binary release (v0.2) was made on 30 December 2013. In October 2014 it was announced by the original author that Syncthing was being rebranded as "Pulse". However, on November 17, the developer decided not to change Syncthing to Pulse and is no longer working with ind.ie. Ind.ie's Pulse is now an officially sanctioned fork of Syncthing. On 22 April 2015, 0.11.0 was released and it introduced conflict handling, language selection in the UI, CPU usage and synching speed improvements, Long filename support on Windows, automatic restarting when there is a problem for example the drive being inaccessible, and support for external versioning software. 0.11 is not backwards compatible with older versions of Syncthing. Because of changes to the REST API Syncthing clients that were on 0.10.x wouldn't automatically update to 0.11 as it wasn't compatible with a lot of the 3rd party integrations at the time of its release. 0.13.0 like many of the older releases of Syncthing is incompatible with clients that are running version 0.12.x and below. 0.13.x separates the folder ids from folder labels. It also now has the ability to serve parts of the file that have already been downloaded to other clients while it is still downloading. 1.0.0, codenamed Erbium Earthworm, didn't really bring any major changes to the table. It was more of a reflection by the developers on the widespread use of the program and the fact that it had already been in development for almost 5 years at that point. Despite the change in the major number Jakob Borg, the lead developer, stated that it was otherwise identical to 0.14.55-rc.2 Alongside the 1.0.0 release the team introduced a new semver-like versioning system with the following criteria: * A new version which is protocol incompatible with the previous one would constitute as a major version. * A new version which has changes in the REST API or has database or configuration changes which would not allow downgrading would constitute a minor version. * If there are no specific concerns as above, it is a new patch version. In 1.1.0 syncthing adopted Go 1.12 and as such loses compatibility withcaseSensitiveFS
that allowed users to disable the newly added handling for case insensitive filesystems.
The 1.10.0 release gave users the ability to toggle whether they would like LAN IPs to be broadcast to the global discovery network.
See also
* Comparison of file synchronization software * List of backup software * Comparison of backup softwareReferences
External links
* {{Official website Data synchronization Peer-to-peer file sharing Peer-to-peer software Free file sharing software Cross-platform free software Free software for Linux Free software for Windows Free software for macOS 2013 software Free software programmed in Go Free storage software Software using the Mozilla Public License Solaris software Free backup software