A Java client implementation of the Syncthing protocol
  • Kotlin 99.8%
  • Shell 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2018-10-04 13:27:18 -05:00
bep Merge pull request #18 from l-jonas/de-hardcode-database-implementation 2018-10-01 02:23:29 -05:00
client Move client cli to own package 2018-09-30 11:10:07 +02:00
client-cli Move client cli to own package 2018-09-30 11:10:07 +02:00
core Make methods of Repository return non-mutable lists 2018-09-28 15:01:19 +02:00
discovery Remove old hardcoded references to SqlRepository 2018-09-28 17:06:04 +02:00
docs . 2016-12-15 21:11:04 +01:00
gradle/wrapper Converted project to gradle 2017-12-08 16:09:35 +09:00
http-relay Add helper method so exceptions in ExecutorService are not ignored 2018-01-29 01:35:58 +09:00
relay Rewrite configuration 2018-01-29 21:53:32 +09:00
repository Dont store discovered device addresses in database 2018-02-08 02:03:28 +09:00
.gitignore Update gitignore 2018-01-10 12:03:08 +09:00
.travis.yml Update .travis.yml 2018-09-16 15:01:25 +01:00
build.gradle Version 0.2.1 2018-02-20 14:53:43 +09:00
gradlew Converted project to gradle 2017-12-08 16:09:35 +09:00
gradlew.bat Converted project to gradle 2017-12-08 16:09:35 +09:00
LICENSE . 2016-12-15 21:11:04 +01:00
prepare-release.bash Added prepare release script 2018-02-20 14:52:48 +09:00
README.md Add notice to repo about merge into syncthing-lite 2018-10-04 13:27:18 -05:00
settings.gradle Move client cli to own package 2018-09-30 11:10:07 +02:00
TODO.txt . 2017-01-17 18:53:19 +01:00

This project was merged into syncthing-lite. The repository only exists for historic reasons.

MPLv2 License

This project is an java client implementation of Syncthing protocols. It is made of several modules, providing:

  1. a command line utility for accessing a Syncthing network (ie a network of devices that speak Syncthing protocols)'

  2. a service implementation for the 'http-relay' protocol (that proxies 'relay' protocol over an http connection);

  3. a client library for Syncthing protocol, that can be used by third-party applications (such as mobile apps) to integrate with Syncthing.

Care is taken to make sure the client library is compatible with android (min sdk 19), so it can be used for the syncthing-lite project.

This is a client-oriented implementation, designed to work online by downloading and uploading files from an active device on the network (instead of synchronizing a local copy of the entire repository). This is quite different from the way the syncthing-android app works, and its useful from those implementations that cannot or wish not to download the entire repository (for example, mobile devices with limited storage available, wishing to access a syncthing share).

Building

The project uses a standard gradle build. After installing gradle, simply run gradle assemble to compile, or gradle install to add it to your local maven repository.

Running

To use the command line client, run gradle run -Pargs="-h".

License

All code is licensed under the MPLv2 License.