Skip to content
vaguuePublic

About

A lightweight tool and SDK to transfer your files as fast as possible

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Dicker

A lightweight tool and SDK to transfer your files as fast as possible. This repo was designed for a case when you need to go faster than rclone / rsync - dicker does it by:

  • Cross-file compression streams
  • Lock-free async channels for I/O
  • Supporting windows VSS

Usage

The repo consists of server and client, running a server is as simple as

DICKER_SECRET=dicker-secret ./dicker-server --root /tmp

following the client:

# use dicker for plaintext, dickers for dicker over TLS
./dicker dickers://dicker-secret@1.2.3.4:5959 file-or-directory-1 file-or-directory-2

C++ SDK usage:

#include "dicker.h"

int main() {
  dicker::Conn conn{"dickers://dicker-secret@1.2.3.4:5959"};

  dicker::Config cfg{conn};
  dicker::Scheduler dicker{cfg};

  dicker.addRoot("file-or-directory-1");
  dicker.addRoot("file-or-directory-2");

  dicker.start();

  return 0;
}

Notes

  • The server is built using libuv, supported compression algorithms include zstd and lz4.
  • No documentation yet, but the code is pretty simple
  • The server is mostly vibecoded, the client (the hard part) and the protocol are manual
  • Everything is built from source using zig c++, no 3rd party deps
  • If you want to know how it works check out arch.md
  • Outperforms rclone on raw disk: bench.md

About

A lightweight tool and SDK to transfer your files as fast as possible

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages