A LAN-based file synchronization application that keeps a shared folder in sync across multiple clients on a local network, using delta-based updates
- 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 efswOn Debian/Ubuntu, most of these can be installed with:
sudo apt install cmake g++ libssl-dev librsync-devFor efsw, see the efsw repository for build instructions.
For msgpack-cxx see the msgpack-c repository
cmake -B build
cmake --build buildBy 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 buildStart the server first (it listens for incoming client connections):
./build/lanfs_serverThen, on the same machine or another device on the same LAN, start the client:
./build/lanfs_client