syncat

module
v0.0.0-...-82860ec Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 18, 2022 License: MIT

README

Go Report Card GitHub go.mod Go version Go Reference GitHub GitHub last commit Github Star

syncat [WIP]

Files should never have been synced by OneDrive, Qsync, iCloud automatically ...

-- one almost lost all his files once after a sync

Introduction

A server-client tool with a centralized server hosting the files, and clients syncing files cross platforms.

Features

  • Sync files between server and multiple clients
  • Files on server can be modified in place, because it is intended to be deployed on NAS
  • Auto conflict detection. Conflict will be notified to the client and then notify the user to resolve manually
  • Custom network protocol based on TCP
  • GUI for clients (mainly used for resolving conflicts)
  • Special support for NTFS, use win32api to listen to file changes instead of polling

Project Structure

.
├── bin                     # Executables
├── cmd                     # Entry points
│   ├── client
│   │   └── main.go
│   └── server
│       └── main.go
├── config                  # Configuration files
│   ├── config.yml
│   ├── client_config.yml
│   └── server_config.yml
├── data                    # Database
├── internal                # Internal packages
│   ├── client
│   └── server
├── pkg                     # Reused code for server and client
│   ├── config              # Configuration
│   ├── database            # Database
│   ├── proto               # Protobuf
│   ├── sync                # Sync
│   └── syncnet             # Network Protocol
└── go.mod

Resources

Directories

Path Synopsis
cmd
internal
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL