A peer-to-peer file sharing application written in Rust that allows users to share files directly without a central server.
- Peer discovery on local networks
- Direct file transfers between peers
- Secure and encrypted file transfers
- Simple CLI interface
cargo build --release
cargo run -- --help
list-peers
- List discovered peersshare <file_path> <peer_id>
- Share a file with a peerreceive <save_path> <peer_id>
- Receive a file from a peerprogress <transfer_id>
- Show transfer progress
This application uses UDP broadcasts for peer discovery, which may require appropriate permissions:
If you encounter "Permission denied" errors when running the application, you might need to grant the necessary network permissions:
sudo setcap 'cap_net_raw,cap_net_admin=eip' target/debug/leni-deni
Or run with sudo (not recommended for production):
sudo cargo run -- list-peers
Run as administrator or ensure your firewall allows the application to send UDP broadcasts.
You may need to allow the application in System Preferences > Security & Privacy > Firewall.
If peer discovery is not working:
- Ensure your firewall allows UDP traffic on ports 45678 and 45679
- Make sure you are on the same network as your peers
- Check if your network allows broadcast traffic