Simple Implementation of BitTorrent-Client in Python
- what is γ-Torrent?
- Features
- How to Install γ-Torrent?
- How to run γ-Torrent?
- Dependencies
- Screenshots
- Support
Gamma-Torrent (γ-Torrent) is a basic Python based BitTorrent-Client tool which can be accessed using Command-Line-Interface. It was created as an end semester collaborative project for Computer Networks course. The main motive of this project was to implement simple Bittorrent-Client adn add few innovative ideas to improve the performance of GammaTorrent.
- Clone the repo using :
$ git clone https://github.com/caped-crusader16/Gamma-Torrent.git
- After complete cloning, enter directory GammaTorrent under Gamma-Torrent-master directory
$ cd Gamma-Torrent-master/GammaTorrent
- To install the dependencies by itself
$ pip install -r requirements.txt
- To run the project
$ python3 main.py react.torrent
Format :
$ python3 main.py <torrent_file_name>
Note : This torrent file should be present in the 'torrent_d/sample_torrents' directory to run. You just need to include the file name in the command where the torrent should exist in the directory mentions. Currently, only 'react.torrent' file is present in the given directory
bcoding==1.5
bitstring == 3.1.7
PyPubSub == 4.0.3
requests >= 2.24.0
pubsub == 0.1.2
ipaddress == 1.0.23
- Image-1 : Starting of Torrent; Connecting with the peers
- Image-2 : Connecting with peers using Sockets; Handling Handshakes with the connected peers
- Image-3 : Handling Handshakes and BitFields with the peers
- Image-4 : Handling choke, unchoke peers; Downloading content in pieces
- BitTorrent Specifications
- BitTorrent Official Web.
- Allen Kim's Blog
- Kristen Widman's Blog
- Reference Article-1
- Reference Article-2
- Reference Article-3
Shreyansh Shah, Manav Vagrecha , Devam Shah
- If you really like the project then please give us a star ⭐
- If you are interested to add some new features or make any improvements, ping me up at (shreyansh.s@ahduni.edu.in) with a detailed explanation of your approach OR send a pull request OR File an issue with detailed description.