Sen descrición

Miao Wang a4d94cae07 bump to version 0.6.7 %!s(int64=5) %!d(string=hai) anos
.github 8ebace4d9a Add support for multiarch builds %!s(int64=5) %!d(string=hai) anos
.vscode b2a22a9bbc update editor config %!s(int64=5) %!d(string=hai) anos
autocomplete 83fc766147 feat(bash and zsh autocompletion for tunasynctl): %!s(int64=9) %!d(string=hai) anos
cmd 600874ae54 Add `--format` and `--status` for tunasynctl %!s(int64=5) %!d(string=hai) anos
docs e3c8cded6c fix examlpe with docker_image %!s(int64=5) %!d(string=hai) anos
internal a4d94cae07 bump to version 0.6.7 %!s(int64=5) %!d(string=hai) anos
manager 9f7f18c2c4 Fix missing method in mock test %!s(int64=5) %!d(string=hai) anos
systemd 28c8145137 feature(worker): limit rsync memory using cgroup %!s(int64=9) %!d(string=hai) anos
tests 5c8d90608c feature(worker): implemented multi-file configrations. closing #23 %!s(int64=9) %!d(string=hai) anos
worker b4b81ef7e9 Fix typo: registor -> register %!s(int64=5) %!d(string=hai) anos
.gitignore 8ebace4d9a Add support for multiarch builds %!s(int64=5) %!d(string=hai) anos
.testpackages.txt 44af0d5e62 feature(worker): framework of mirror provider %!s(int64=9) %!d(string=hai) anos
LICENSE 78f3501e19 Initial commit %!s(int64=11) %!d(string=hai) anos
Makefile 8ebace4d9a Add support for multiarch builds %!s(int64=5) %!d(string=hai) anos
README.md 3a2888dd5d Bye Travis! %!s(int64=5) %!d(string=hai) anos
go.mod 7a9895350b Support nested mirror config %!s(int64=5) %!d(string=hai) anos
go.sum 7a9895350b Support nested mirror config %!s(int64=5) %!d(string=hai) anos
package.json c311648546 chore(git): Made this repo commitizen frendly %!s(int64=9) %!d(string=hai) anos

README.md

tunasync

Build Status Coverage Status Commitizen friendly GPLv3

Get Started

Download

Pre-built binary for Linux x86_64 is available at Github releases.

Design

# Architecture

- Manager: Central instance for status and job management
- Worker: Runs mirror jobs

+------------+ +---+                  +---+
| Client API | |   |    Job Status    |   |    +----------+     +----------+ 
+------------+ |   +----------------->|   |--->|  mirror  +---->|  mirror  | 
+------------+ |   |                  | w |    |  config  |     | provider | 
| Worker API | | H |                  | o |    +----------+     +----+-----+ 
+------------+ | T |   Job Control    | r |                          |       
+------------+ | T +----------------->| k |       +------------+     |       
| Job/Status | | P |   Start/Stop/... | e |       | mirror job |<----+       
| Management | | S |                  | r |       +------^-----+             
+------------+ |   |   Update Status  |   |    +---------+---------+         
+------------+ |   <------------------+   |    |     Scheduler     |
|   BoltDB   | |   |                  |   |    +-------------------+
+------------+ +---+                  +---+


# Job Run Process


PreSyncing                           Syncing                               Success
+-----------+     +----------+    +-----------+    +-------------+     +--------------+
|  pre-job  +--+->| pre-exec +--->|  job run  +--->|  post-exec  +-+-->| post-success |
+-----------+  ^  +----------+    +-----------+    +-------------+ |   +--------------+
               |                                                   |
               |                +-----------------+                | Failed
               +----------------+    post-fail    |<---------------+
                                +-----------------+

Building

Go version: 1.13

make all

Binaries in the build/.