| Syncthing | |
|---|---|
Syncthing web interface: the synced Folders are on the left and the Devices are on the right | |
| Original author | Jakob Borg |
| Developer | Jakob Borg et al.[1] |
| Initial release | December 15, 2013; 12 years ago (2013-12-15) |
| Stable release | 2.0.13[2] |
| Preview release | 2.0.0-rc.25 (11 August 2025; 6 months ago (2025-08-11)[3]) [±] |
| Written in | Go |
| Operating system | Windows,Unix andUnix-like (includingLinux,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 in | 62 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 |
| Repository | |
Syncthing is apeer-to-peerfile synchronization utility, designed to sync files between devices on alocal network or between remote devices over theInternet. It runs onWindows,macOS,Linux,Android,iOS,*BSD andillumos.[7] The software isfree and open source, and its version 1.0 was released in 2019 after 5 years inbeta.[8]
The Syncthing server runs in the background as adaemon and provides agraphical user interface to the user for configuring the shared folders and devices. The interface is accessed in aweb browser using thelocalhost addresshttp://127.0.0.1:8384.[7][9] Data security and safety are built into its design with all Syncthing data transfersencrypted usingTLS.[10]
Syncthing is written inGo and implements its own, likewisefree Block Exchange Protocol.[11]
Syncthing is aBYOcloud model, running on user-provided hardware. It supportsIPv6 and, for those onIPv4 networks,NAT punching and relays. Connecting a device requires explicit approval (except where the Introducer feature is used), which increases the security of themesh. All data, whether transferred directly between devices or via relays, isencrypted usingTLS.[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 fullhash 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 differentSHA256 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]
Device discovery is achieved via publicly-accessible discovery servers hosted by the project developers,[22]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 IPv4NAT firewalls to communicate by relaying encrypted data via a third party. The relay is similar to theTURN protocol, with the trafficTLS-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.
Syncthing provides a web-based interface for configuring and monitoring the status, via aweb browser either locally (localhost at default port 8384) or remotely (and supports access viaproxy 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 is currently directly available forWindows,macOS,Linux,FreeBSD,OpenBSD andillumos 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 ataskbar tray utility), Syncthing-Fork forAndroid and Möbius Sync foriOS.[28][29] An official Android client was available on theGoogle 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 acommand-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.
In episode 456 ofSecurityNow! (recorded in 2014), hostSteve Gibson praised Syncthing as a potential open-source replacement forBitTorrent 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 inLWN 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 | Date | Notes |
|---|---|---|
| 2.0.0[38] | 2025-08-12 | LevelDB database replaced bySQLite. |
| 1.28.0[39] | 2024-10-04 | Last version to support Android. Following this release the developer pulled the Android version from the Google Play Store and from the open-source repositoryF-Droid.[40] Non-official forks continue to be available. |
| 1.25.0[39] | 2023-09-25 | |
| 1.23.7[39] | 2023-07-31 | Last version of Syncthing to officially supportWindows 7[41], though Syncthing 1.27.0 is known to work with Windows 7 an unsupported capacity. |
| 1.20.0[39] | 2022-05-04 | |
| 1.15.0[39] | 2021-04-06 | |
| 1.10.0[39] | 2020-09-15 | Gave users the ability to toggle whether they would likeLAN IPs to be broadcast to the global discovery network.[42] |
| 1.9.0 | 2020-08-28 | Introduced the optioncaseSensitiveFS that allowed users to disable the newly added handling for case insensitive filesystems.[43] |
| 1.8.0 | 2020-08-07 | Adds an experimental folder option that allows users to specify how file changes should be saved onCopy-on-write file systems and also addsTCP hole punching support.[44] |
| 1.5.0[39] | 2020-04-21 | |
| 1.3.0[45] | 2019-10-01 | New parameter for adjusting database size. |
| 1.2.0[46] | 2019-07-09 | Introduces support for a new transport protocol (QUIC), can now perform automaticcrash 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.[47] |
| 1.1.3[48] | 2019-05-09 | Hotfix release to fix a panic bug on Windows. |
| 1.1.1[49] | 2019-04-02 | Adds support for TLS 1.3. |
| 1.1.0[50] | 2019-04-22 | Syncthing adoptedGo 1.12 and as such loses compatibility withWindows XP andWindows Server 2003.[51]Hashing performance fixed, and user/group ownership follows parent directory. |
| 1.0.0 "Erbium Earthworm"[52] | 2019-01-01 | The first "stable" release, it had few major changes (the lead developer, stated that it was otherwise identical to 0.14.55-rc.2[53]) 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.[54][55] 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 newsemver-like versioning system with the following criteria:[56]
|
| 0.14 "Dysprosium Dragonfly"[57] | 2016-06-19 | New, extensible sync protocol. |
| 0.13 "Copper Cockroach"[58][59] | 2016-05-17 | 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. 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"[60] | 2015-11-05 | Connection Relaying and Device Discovery overHTTPS introduced. |
| 0.11 | 2015-04-22 | 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.[61] 0.11 is notbackwards compatible with older versions of Syncthing.[61] Because of changes to theREST 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.[61] |
| 0.2[62] | 2013-12-30 | Initial public binary release. |