- Tracker-based peer discovery
- Seamless peer-to-peer file sharing
- CLI interface with multiple commands and flags
- Support for uploading and downloading files
- Search functionality for available files in the network
- Robust error handling and graceful peer disconnection
- Rust (>= 1.70)
- Cargo
- tokio
- clap
- serde / serde_json
Clone the repo
git clone https://github.com/sofaspawn/p2p-file-sharing.git
cd p2p-file-sharingBuild the project
cargo build --releaseDownload binary locally
cargo install --path .Run the tracker
shellshare tracker --port 8080Run a peer
shellshare peer --tracker 127.0.0.1:8080 --port 9001Commands
- Upload a file
shellshare peer --tracker 127.0.0.1:8080 --port 9001 upload <file_path>- Download a file
shellshare peer --tracker 127.0.0.1:8080 --port 9001 download <file_name>- List available files
shellshare peer --tracker 127.0.0.1:8080 --port 9001 list| sofaspawn |
Made with ❤ by GDSC-VIT