server-to-server sync application, written in go/golang.

svcpy: server to server copy

a basic server-to-server copy application.

on a single binary, it can be a server or a client.

example usage:

  • on the server side: ./svcpy -listen=:4321 -path=/srv/ftp
  • on the client side ./svcpy -connect=1.2.3.4:4321 -path=/mnt/backups/ftp

notes:

  • prevent information leak by taking diff on the server side
  • general flow:
    • server starts to listen at port
    • client connects
    • client generates a file-list (local)
    • client sends #-of-files to the server
    • server reads #-of-files from the client
    • client sends filelist as json to the server
    • server reads filelist from the client
    • server generates a diff from the list received and what it has locally
    • server verifies diff in terms of file counts
    • server creates tar archive and pushes to socket
    • client reads the tar archive and unpacks to path specified

todo:

  • add some kind of authentication (token, openid etc)
  • generate filelist in deferred fashion.
    • eg: checksums should be async (much like python's yield keyword)
  • add compression (gzip/xz) to speed up transfer
  • add bandwidth limitation
Owner
Mert Akengin
3ngineer, @FinCompare, @iyzico, @IvenProductCloud, @TEDxBahcesehir, @sparkgo, and TUBITAK Efficiency Challenge '14 & '15
Mert Akengin
Similar Resources

Server - Dupman server written in Go

server dupman server written in Go Requirements Go (=1.17) Installation Usage C

Feb 22, 2022

Go application of a gRPC client and server, built for Azure Container Apps

gRPC Sample : Go View this sample in other languages C# Go Java JavaScript Python The following is a sample of a gRPC client calling another container

Nov 29, 2021

Go-http-sleep: Delayed response http server, useful for testing various timeout issue for application running behind proxy

delayed response http server, useful for testing various timeout issue for application running behind proxy

Jan 22, 2022

Simple server ssh application

Simple server ssh application

Dec 13, 2022

EasyTCP is a light-weight and less painful TCP server framework written in Go (Golang) based on the standard net package.

EasyTCP is a light-weight TCP framework written in Go (Golang), built with message router. EasyTCP helps you build a TCP server easily fast and less painful.

Jan 7, 2023

A socks5 server(tcp/udp) written in golang.

socks5-server A socks5 server(tcp/udp) written in golang. Usage Usage of /main: -l string local address (default "127.0.0.1:1080") -p stri

Nov 20, 2022

The witch Web server, Written in golang

WitchServer The witch Web server, Written in golang This is a work-in-progress. So code might be a bit messy. I will only release the working, stable

Jun 2, 2022

A http-relay server/client written in golang to forward requests to a service behind a nat router from web

http-relay This repo is WIP http-relay is a server/client application written in go(lang) to forward http(s) requests to an application behind a nat r

Dec 16, 2021

📡 http interactions server written in golang

📡 http interactions server written in golang

📡 mixtape-bot/kantoku http interactions server written in go publishes all interactions to rabbitmq probably bad because im very new to go ⛓️ usage t

Jan 7, 2023
Related tags
An API Client package for Studyplus for School SYNC API

Studyplus for School SYNC API Client This project is currently alpha, possibility having breaking changes. studyplus_for_school_sync_go is a API clien

Aug 2, 2021
Secure Time Sync Daemon

stsd - Secure Time Sync Daemon ============================== Set system date based on HTTP 'date' headers over TLS. Inspired by Whonix's sdwdate, an

Dec 15, 2021
Jun 6, 2022
easyRpc - Sync && Async Call supported

easyRpc - Sync && Async Call supported

Feb 16, 2022
High-performance PHP application server, load-balancer and process manager written in Golang
High-performance PHP application server, load-balancer and process manager written in Golang

RoadRunner is an open-source (MIT licensed) high-performance PHP application server, load balancer, and process manager. It supports running as a serv

Jan 1, 2023
High-performance PHP application server, load-balancer and process manager written in Golang
High-performance PHP application server, load-balancer and process manager written in Golang

RoadRunner is an open-source (MIT licensed) high-performance PHP application server, load balancer, and process manager. It supports running as a serv

Dec 9, 2021
🌕 Server application for storing doujinshi, manga, art collections and other galleries with API and user control. Written in Go.

?? Server application for storing doujinshi, manga, art collections and other galleries with API and user control. Written in Go.

Dec 31, 2022
Pape-server - A small server written in golang to serve a random wallpaper.

pape-server I like to inject custom CSS themes into a lot of websites and electron apps, however browsers don't let websites access local disk through

Dec 31, 2021
Client-Server tcp-based file transfer application in GoLang

Клиент-серверный файловый сервис на базе протокола TCP Клиент client.go шифрует свои файлы алгоритмом AES с режимом CBC и помещает их на сервер server

Apr 1, 2022
Application written in Go which polls Time-series data at specific intervals and saves to persistent storage

TPoller Server Overview The purpose of this application is to poll time-series data per time interval from any (telemetry) application running a gRPC

Feb 10, 2022