Open Source Continuous File Synchronization; contains branches to build Syncthing as a C library
Go to file
Audrius Butkevicius fd0a147ae6 Add job queue (fixes #629)
Request to terminate currently ongoing downloads and jump to the bumped file
incoming in 3, 2, 1.

Also, has a slightly strange effect where we pop a job off the queue, but
the copyChannel is still busy and blocks, though it gets moved to the
progress slice in the jobqueue, and looks like it's in progress which it isn't
as it's waiting to be picked up from the copyChan.

As a result, the progress emitter doesn't register on the task, and hence the file
doesn't have a progress bar, but cannot be replaced by a bump.

I guess I can fix progress bar issue by moving the progressEmiter.Register just
before passing the file to the copyChan, but then we are back to the initial
problem of a file with a progress bar, but no progress happening as it's stuck
 on write to copyChan

I checked if there is a way to check for channel writeability (before popping)
but got struck by lightning just for bringing the idea up in #go-nuts.

My ideal scenario would be to check if copyChan is writeable, pop job from the
queue and shove it down handleFile. This way jobs would stay in the queue while
they cannot be handled, meaning that the `Bump` could bring your file up higher.
2015-01-02 15:33:39 +01:00
assets Logo update 2014-08-06 09:07:13 +02:00
cmd Add job queue (fixes #629) 2015-01-02 15:33:39 +01:00
docker Patch Go for issue #9102 in build env (fixes #1112) 2014-12-13 10:38:05 +01:00
etc Add example for Solaris SMF running 2014-11-24 13:59:59 +01:00
Godeps Update goleveldb 2014-12-29 12:23:07 +01:00
gui Add job queue (fixes #629) 2015-01-02 15:33:39 +01:00
internal Add job queue (fixes #629) 2015-01-02 15:33:39 +01:00
protocol Move protocol specs to a separate repo 2014-12-22 09:55:58 +01:00
test Make sure to stop processes when exiting integration test 2014-12-31 13:04:06 +01:00
.gitignore Include MD5 sums in archives 2014-12-22 12:12:34 +01:00
.mailmap Include ref#, show author nickname in release notes 2014-12-07 12:52:18 +01:00
AUTHORS Add Cathryne 2014-12-18 21:59:54 +01:00
build.go Include MD5 sums in archives 2014-12-22 12:12:34 +01:00
build.sh Improve and clean up integration tests, benchmark. 2014-12-19 12:43:48 +01:00
changelog.sh Include ref#, show author nickname in release notes 2014-12-07 12:52:18 +01:00
check-contrib.sh Disregard change to removed doc 2014-12-23 10:23:36 +01:00
CONDUCT.md Add Code of Conduct 2014-12-02 15:57:31 +01:00
CONTRIBUTING.md Clarify authorship requirements in contribution guidelines 2014-12-18 21:56:52 +01:00
LICENSE Relicense to GPL 2014-10-01 07:53:59 +02:00
NICKS ... and in NICKS (I should go to bed) 2014-12-18 22:55:04 +01:00
README.md Move protocol specs to a separate repo 2014-12-22 09:55:58 +01:00

syncthing

Latest Build API Documentation GPL License

This is the syncthing project. The following are the project goals:

  1. Define a protocol for synchronization of a folder between a number of collaborating devices. The protocol should be well defined, unambiguous, easily understood, free to use, efficient, secure and language neutral. This is the Block Exchange Protocol.

  2. Provide the reference implementation to demonstrate the usability of said protocol. This is the syncthing utility. It is the hope that alternative, compatible implementations of the protocol will come to exist.

The two are evolving together; the protocol is not to be considered stable until syncthing 1.0 is released, at which point it is locked down for incompatible changes.

Getting Started

Take a look at the getting started guide.

There are a few examples for keeping syncthing running in the background on your system in the etc directory.

There is an IRC channel, #syncthing on Freenode, for talking directly to developers and users (when awake and present, etc.).

Building

Building Syncthing from source is easy, and there's a guide that describes it for both Unix and Windows.

Signed Releases

As of v0.7.0 and onwards, git tags and release binaries are GPG signed with the key BCE524C7 (http://nym.se/gpg.txt). For release binaries, MD5 and SHA1 checksums are calculated and signed, available in the md5sum.txt.asc and sha1sum.txt.asc files.

Documentation

The syncthing documentation is on the discourse site.

All code is licensed under the GPL, v3 or later.