Syncthing

Last updated
Syncthing
Original author Jakob Borg
Developer Jakob Borg et al. [1]
Initial releaseDecember 15, 2013;11 years ago (2013-12-15)
Stable release 2.0.10 [2]   OOjs UI icon edit-ltr-progressive.svg (24 September 2025;29 days ago (24 September 2025)) [±]
Preview release 2.0.0-rc.25 (11 August 2025;2 months ago (2025-08-11) [3] ) [±]
Repository
Written in Go
Operating system Windows, Unix and Unix-like (including Linux, macOS, Android, FreeBSD, OpenBSD, NetBSD, DragonflyBSD, Solaris, illumos, iOS)
Platform x86, x86-64, ARM, ARM64, Loong64, MIPS, MIPS 64, PowerPC, RISC-V, IBM zSeries [4]
Size 27 MB
Available in62 languages [5]
List of languages
Acoli, Albanian, Albanian (Albania), Arabic, Basque, Belarusian, Bengali, Bulgarian, Catalan, Catalan (Valencian), Chinese, Chinese (China), Chinese (Hong Kong), Chinese (Taiwan), Croatian (Croatia), Czech, Danish, Danish (Denmark), Dutch, English (Australia), English (United Kingdom), Esperanto, Estonian, Finnish, French, French (Canada), Galician, German, Greek, Hebrew (Israel), Hindi, Hungarian, Indonesian, Irish (Ireland), Italian, Japanese, Japanese (Japan), Korean (Korea), Latvian, Lithuanian, Nepali, Norwegian Bokmål, Norwegian Nynorsk, Persian, Polish, Portuguese (Brazil), Portuguese (Portugal), Romanian (Romania), Russian, Serbian, Sinhala, Slovak, Slovak (Slovakia), Slovenian, Spanish, Spanish (Spain), Swedish, Tamil, Turkish, Ukrainian, Vietnamese, Western Frisian
Type File synchronization
License MPL 2.0 [6]
Website syncthing.net

Syncthing is a peer-to-peer file synchronization utility, designed to sync files between devices on a local network or between remote devices over the Internet. It runs on Windows, macOS, Linux, Android, iOS, *BSD and illumos. [7] The software is free and open source and its version 1.0 was released in 2019 after five years in beta. [8]

Contents

The Syncthing server runs in the background as a daemon and provides a graphical user interface to the user for configuring the shared folders and devices. The interface is accessed in a web browser using the localhost address http://127.0.0.1:8384. [7] [9] Data security and safety are built into its design with all Syncthing data transfers encrypted using TLS. [10]

Technology

Syncthing is written in Go and implements its own, likewise free Block Exchange Protocol. [11]

Syncthing is a BYO cloud model, running on user-provided hardware. It supports IPv6 and, for those on IPv4 networks, NAT punching and relay. Connecting devices require explicit approval (except where the Introducer feature is used), which increases the security of the mesh. All data, whether transferred directly between devices or via relays, is encrypted using TLS. [10] [12]

Conflicts are handled by renaming the older file with a "sync-conflict" suffix (along with time stamp), enabling the user to decide how to manage two or more files of the same name that have been changed between synching. [13] GUI wrappers can use these files to offer the user a method of resolving conflicts without having to resort to manual file handling.

Efficient syncing is achieved via compression of metadata and all transfer data, [14] block re-use [15] and lightweight scanning [16] for changed files once a full hash has been computed and saved. Syncthing offers send-only and receive-only folder types, [17] in which updates from remote devices are not processed, various types of file versioning [18] (trash can, simple or staggered versioning, and handing versioning to an external program or script), and file/path ignore patterns. [19] Two different SHA256 hash implementations are currently supported, the faster of which is used dynamically after a brief benchmark on startup. [20] Moving and renaming files and folders is handled efficiently, without re-downloading existing data. [21]

Infrastructure

Device discovery is achieved via publicly-accessible discovery servers hosted by the project developers, [22] local (LAN) discovery via broadcast messages, device history and static host name/addressing. The project also provides the Syncthing Discovery Server [23] 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. [24]

Syncthing can be used without any connection to the project or community's servers: [25] 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 provides a web-based interface for configuring and monitoring the status, via a web browser either locally (localhost at port 8384) or remotely (and supports access via proxy server). The interface allows users to choose and manage the folders for sharing and also the devices part of the synchronization. Every computer in Syncthing has a unique Device ID which is used for adding new devices to the syncing network with approval. [26]

Syncthing-Fork interface on an Android mobile phone Syncthing-Fork Android.png
Syncthing-Fork interface on an Android mobile phone

Syncthing is currently directly available for Linux, Windows, macOS, FreeBSD, OpenBSD and illumos platforms. [27] Some platforms no longer have provided prebuilt versions and must be manually compiled. [7] There are also community-contributed Syncthing wrapper programs such as SyncTrayzor for Windows (which runs as a taskbar tray utility), Syncthing-Fork for Android and Möbius Sync for iOS. [28] [29] An official Android client was available on the Google Play Store until 2024. [30]

For more advanced users, it is also possible to edit the Syncthing configuration file directly without using the interface or to use Syncthing using a command-line interface. 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! (recorded in 2014), host Steve Gibson praised Syncthing as a potential open-source replacement for BitTorrent Sync, [31] and again referenced it in episodes 603, [32] 698, [33] 727, [34] and in more detail in episodes 734 and 781. [35] [36]

A reviewer in LWN wrote, in 2021, [37] "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."

Version history

Syncthing version history (part)
VersionDateNotes
2.0.0 [38] 2025-08-12 LevelDB database replaced by SQLite.
1.25.0 [39] 2023-09-25
1.20.0 [39] 2022-05-04
1.15.0 [39] 2021-04-06
1.10.0 [39] 2020-09-15Gave users the ability to toggle whether they would like LAN IPs to be broadcast to the global discovery network. [40]
1.9.02020-08-28Introduced the option caseSensitiveFS that allowed users to disable the newly added handling for case insensitive filesystems. [41]
1.8.02020-08-07Adds an experimental folder option that allows users to specify how file changes should be saved on Copy-on-write file systems and also adds TCP hole punching support. [42]
1.5.0 [39] 2020-04-21
1.3.0 [43] 2019-10-01New parameter for adjusting database size.
1.2.0 [44] 2019-07-09Introduces support for a new transport protocol (QUIC), can now perform automatic crash reporting and deprecates small / fixed blocks. 1.2.0 also dropped support for communicating with Syncthing clients that are running 0.14.45 or older. [45]
1.1.3 [46] 2019-05-09 Hotfix release to fix a panic bug on Windows.
1.1.1 [47] 2019-04-02Adds support for TLS 1.3.
1.1.0 [48] 2019-04-22Syncthing adopted Go 1.12 and as such loses compatibility with Windows XP and Windows Server 2003. [49] Hashing performance fixed, and user/group ownership follows parent directory.
1.0.0 "Erbium Earthworm" [50] 2019-01-01The first "stable" release, it had few major changes (the lead developer, stated that it was otherwise identical to 0.14.55-rc.2 [51] ) but 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. [52] [53] Changes were a limit to max simultaneous scans and to show limit locally changed files for receive only folders.

Alongside the 1.0.0 release the team introduced a new semver-like versioning system with the following criteria: [54]

  • 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.
0.14 "Dysprosium Dragonfly" [55] 2016-06-19New, extensible sync protocol.
0.13 "Copper Cockroach" [56] [57] 2016-05-170.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. 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.12 "Beryllium Bedbug" [58] 2015-11-05Connection Relaying and Device Discovery over HTTPS introduced.
0.112015-04-22Introduced 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. [59] 0.11 is not backwards compatible with older versions of Syncthing. [59] 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. [59]
0.2 [60] 2013-12-30Initial public binary release.

See also

References

  1. "AUTHORS" . Retrieved 7 April 2016 via GitHub.
  2. "Release 2.0.10". 24 September 2025. Retrieved 21 October 2025.
  3. "Release v2.0.0-rc.25" . Retrieved 2025-08-12 via GitHub.
  4. https://syncthing.net/downloads/
  5. "The syncthing translation project on Transifex". www.explore.transifex.com. Retrieved 2025-09-26.
  6. "LICENSE" . Retrieved 7 April 2016 via GitHub.
  7. 1 2 3 "Sync files quickly and securely between devices for free with Syncthing 2.0". BetaNews. 2025-08-12. Retrieved 2025-10-23.
  8. "Syncthing 1.0.0 released as open-source P2P sync tool, finally leaves beta". BetaNews. 2019-01-03. Retrieved 2023-10-18.
  9. Wallen, Jack (5 January 2016). "Let Syncthing turn your desktop into a local cloud for your mobile device". TechRepublic . CBS Interactive.
  10. 1 2 "Security Principles — Syncthing v0.14 documentation". Docs.syncthing.net. Retrieved 2017-01-04.
  11. "Block Exchange Protocol v1" . Retrieved 7 April 2016.
  12. "Relaying — Syncthing v0.14 documentation". Docs.syncthing.net. Retrieved 2017-01-04.
  13. "FAQ — Syncthing v0.14 documentation". Docs.syncthing.net. Retrieved 2017-01-04.
  14. "FAQ — Syncthing v0.14 documentation". Docs.syncthing.net. Retrieved 2017-01-04.
  15. "Understanding Synchronization — Syncthing v0.14 documentation". Docs.syncthing.net. Retrieved 2017-01-04.
  16. "Understanding Synchronization — Syncthing v0.14 documentation". Docs.syncthing.net. Retrieved 2017-01-04.
  17. "Folder Types" . Retrieved 2020-07-09.
  18. "File Versioning — Syncthing v0.14 documentation". Docs.syncthing.net. Retrieved 2017-01-04.
  19. "Ignoring Files — Syncthing v0.14 documentation". Docs.syncthing.net. Retrieved 2017-01-04.
  20. "cmd/syncthing: Add selectable sha256 package (fixes #3613, fixes #3614)". Github.com. 2016-09-22. Retrieved 2017-01-04.
  21. "FAQ — Syncthing v0.14 documentation". Docs.syncthing.net. Retrieved 2017-01-04.
  22. "Understanding Device IDs — Syncthing v0.14 documentation". Docs.syncthing.net. Retrieved 2017-01-04.
  23. "Syncthing Discovery Server — Syncthing v0.14 documentation". Docs.syncthing.net. Retrieved 2017-01-04.
  24. "Relaying — Syncthing v0.14 documentation". Docs.syncthing.net. Retrieved 2017-01-04.
  25. "Security Principles — Syncthing v0.14 documentation". Docs.syncthing.net. Retrieved 2017-01-04.
  26. "Understanding Device IDs — Syncthing documentation". docs.syncthing.net. Retrieved 2025-10-23.
  27. "Syncthing | Downloads". syncthing.net. Retrieved 2025-10-23.
  28. Contributor. "How to use SyncThing to sync files without the cloud". PCWorld. Retrieved 2025-10-23.{{cite web}}: |last= has generic name (help)
  29. "Community Contributions — Syncthing documentation". docs.syncthing.net. Retrieved 2025-10-23.
  30. "Syncthing's Android App is Going Away, Google Play Store Policies is One of the Reasons to Blame". It's FOSS News. 2024-10-23. Retrieved 2025-10-23.
  31. "Security Now! Episode 456". Grc.com. Retrieved 4 November 2014.
  32. "Security Now! Episode 603". Grc.com. Retrieved 7 February 2019.
  33. "Security Now! Episode 698". Grc.com. Retrieved 7 February 2019.
  34. "Security Now! Episode 727". Grc.com. Retrieved 14 August 2019.
  35. "Security Now! Episode 734 on YouTube". YouTube.com. October 2019. Retrieved 3 October 2019.
  36. "Security Now! Episode 781 on YouTube". YouTube.com. 25 August 2020. Retrieved 1 September 2020.
  37. "Syncing all the things" . Retrieved 7 September 2021.
  38. syncthing. "Release v2.0.0 · syncthing/syncthing". GitHub. Retrieved 2025-10-23.
  39. 1 2 3 4 5 "Versions & Releases — Syncthing documentation". docs.syncthing.net. Retrieved 2023-10-18.
  40. "Release v1.10.0 · syncthing/syncthing". GitHub. Retrieved 15 October 2020.
  41. "Release v1.9.0 · syncthing/syncthing". GitHub. Retrieved 15 October 2020.
  42. "Release v1.8.0 · syncthing/syncthing". GitHub. Retrieved 15 October 2020.
  43. v1.3.0, The Syncthing Project, 2019-10-01
  44. v1.2.0, The Syncthing Project, 2019-07-09
  45. "Release v1.2.0 · syncthing/syncthing". GitHub. Retrieved 15 October 2020.
  46. v1.1.3, The Syncthing Project, 2019-05-31
  47. v1.1.1, 2019-05-31
  48. v1.1.0, 2019-05-31
  49. "Release v1.1.0 · syncthing/syncthing". GitHub. Retrieved 15 October 2020.
  50. v1.0.0, 2019-05-31
  51. "Syncthing graduation day". Syncthing Community Forum. 1 January 2019. Retrieved 15 October 2020.
  52. "Release v1.0.0 · syncthing/syncthing". GitHub. Retrieved 15 October 2020.
  53. "Syncthing 1.0.0 released as open-source P2P sync tool, finally leaves beta". BetaNews. 3 January 2019. Retrieved 15 October 2020.
  54. "Versions & Releases — Syncthing v1 documentation". docs.syncthing.net. Retrieved 15 October 2020.
  55. "0.14". Github.com. 19 June 2016.
  56. "0.13". Github.com. 17 May 2016.
  57. "Release v0.13.0 · syncthing/syncthing". GitHub. Retrieved 15 October 2020.
  58. "0.12". 14 April 2016.
  59. 1 2 3 "Syncthing v0.11.0 Release Notes". Syncthing Community Forum. 14 April 2015. Retrieved 15 October 2020.
  60. "Releases". 30 December 2013 via GitHub.