BitForge is a custom-built torrent-like peer-to-peer (P2P) file sharing client designed from scratch in Python. It supports downloading files in parallel from multiple peers, seeding, and a GUI interface using PyQt5.
BitForge was inspired by the inner workings of the original BitTorrent protocol. The goal was to demystify how P2P file-sharing systems operate under the hood by rebuilding the entire processโfrom chunked file transfer to tracker registration and multi-peer discoveryโentirely in Python.
This project serves as a hands-on implementation for learning about:
- Networking and sockets
- Multi-threaded file transfer
- Hash-based chunk verification
- Torrent protocol mechanics
- GUI development with PyQt5
- ๐
.torrentfile parsing (bencode decoding) - ๐ Tracker-based peer discovery
- โฌ๏ธ Multi-peer parallel chunk downloads
- ๐งฉ Resume support using JSON
- ๐ป CLI seeding & uploading with
seeding.pyandmy_server.py - ๐ฅ๏ธ PyQt5 GUI interface with progress bar, chunk status, theme toggle, and logo branding
| Layer | Technology |
|---|---|
| Programming | Python 3.10+ |
| GUI | PyQt5 |
| Networking | socket, requests |
| Torrent Parsing | bencodepy |
| Parallelism | threading |
| File Handling | JSON, Binary I/O |
python chunk_hash.py
python tracker.py
python automated_seeder.py
python gui.py
- ๐ฆ Educational Tool โ Learn how real-world file sharing protocols like BitTorrent work.
- ๐ Custom P2P Sharing โ Share files within a closed network (classroom, LAN, etc.).
- ๐ Resumable Downloads โ Download large files with chunked resume support.
- ๐ Experimentation Base โ Extend to add DHT, magnet links, peer banning, etc.
- ๐ป GUI Showcases โ Demonstrate PyQt integration with threaded backend systems.
- The BitTorrent Protocol Specification
- Wikipedia โ BitTorrent
- bencodepy GitHub Repo โ Used for
.torrentfile decoding - PyQt5 Documentation โ For GUI implementation
- Python Sockets Documentation
๐จโ๐ป Developed by - @Arijit2175

