Simple LAN file transfer utility for Linux written in C.
The idea is to send files directly between devices on the same network without using any cloud service.
- Discover devices on LAN using UDP broadcast
- Send files directly over TCP
- TLS encryption using OpenSSL
- Trust on First Use (TOFU)
- Uses epoll for handling multiple connections
- SHA-256 checksum verification after transfer
- Linux
- GCC/Clang
- CMake
- OpenSSL
- cJSON
git clone <repo-url>
cd landrop
cmake -B build
cmake --build buildBinary will be inside build/.
Start daemon
landrop daemonList available peers
landrop peersSend a file
landrop send file.txt user@hostnameTrust management
landrop trustConfiguration
landrop configsrc/
├── discovery/
├── network/
├── crypto/
├── transfer/
├── utils/
└── main.c
- Peers announce themselves using UDP broadcasts.
- When sending a file, a TCP connection is established.
- TLS is used for encryption.
- The receiver verifies the sender's certificate using TOFU.
- File is transferred in chunks.
- SHA-256 checksum is verified after completion.
Configuration is stored under:
~/.config/landrop/
Files include
- settings.json
- known_hosts.json
- certificate.pem
- private_key.pem
Received files are saved to ~/Downloads by default.
- Resume interrupted transfers
- Progress bar
- Multiple file transfer
- Directory transfer
- IPv6 support
MIT