Skip to content
Jakob Borg edited this page Apr 18, 2014 · 35 revisions

Welcome to the syncthing wiki!

Your first stop should probably be the Getting Started guide. See the Release Schedule about when to expect new versions. Look at the Case Study for an overview of how syncthing can be used.

If you want to start hacking, you should probably read about Building syncthing. Take a look at the Contributions Needed page to get ideas for areas to work on.

Features

To request features and file bugs, see the issue tracker.

The following features are currently implemented and working:

  • The formation of a cluster of nodes, certificate authenticated and communicating over TLS over TCP.

  • Synchronization of a single directory among the cluster nodes.

  • Change detection by periodic scanning of the local repository.

  • Static configuration of cluster nodes.

  • Automatic discovery of cluster nodes. See discover.go for the protocol specification. Discovery on the LAN is performed by broadcasts, Internet wide discovery is performed with the assistance of a global server.

  • Handling of deleted files. Deletes can be propagated or ignored per client.

  • Synchronizing multiple unrelated directory trees by following symlinks directly below the repository level.

  • HTTP GUI.

  • Syncing multiple directories from the same syncthing instance.

  • Automatic NAT port mapping via UPnP.

The following features are not implemented but may be implemented in the future:

  • Change detection by listening to file system notifications instead of periodic scanning.

  • Conflict resolution. Currently whichever file has the newest version stamp. The correct behavior in the face of conflicts is open for discussion.

Supported OS/architectures

      | Mac OS X    Linux     FreeBSD    Solaris   Windows
      |----------------------------------------------------
 i386 | Untested   Untested   Untested      -        Yes
AMD64 |   Yes        Yes      Untested  Broken[1]    Yes
ARMv5 |    -       Untested      -          -         -
ARMv6 |    -       Untested      -          -         -
ARMv7 |    -       Untested      -          -         -

("Yes" - I build and test on this; "Untested" - It compiles, I guess it ought to work.)

[1] - There are issues with the Go runtime on Solaris, causing segfaults.

Further Reading

See the Security page for the thinking behind the security mechanisms in syncthing.