LANsync
LAN-based delta-sync file sharing
Loading...
Searching...
No Matches
LANsync

A LAN-based file synchronization application that keeps a shared folder in sync across multiple clients on a local network, using delta-based updates

C++CMake

📖 Full API documentation

App Screenshot

Requirements

  • CMake ≥ 3.10
  • C++17-compatible compiler (GCC or Clang)
  • OpenSSL (development headers + libraries)
  • msgpack-cxx (must be discoverable via CMake config mode)
  • librsync (development headers + library)
  • efsw (file system watcher library, debug build — efsw-debug)

On Arch-based systems these can be installed with:

sudo pacman -S cmake gcc openssl librsync
yay -S msgpack-cxx
yay -S efsw

On Debian/Ubuntu, most of these can be installed with:

sudo apt install cmake g++ libssl-dev librsync-dev

For efsw, see the efsw repository for build instructions. For msgpack-cxx see the msgpack-c repository

Building

cmake -B build
cmake --build build

By default, the project builds in Debug mode if no build type is specified. To build a release/optimized version instead:

cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build

Usage

Start the server first (it listens for incoming client connections):

./build/lanfs_server

Then, on the same machine or another device on the same LAN, start the client:

./build/lanfs_client