Skip to content

sairamanareddy/GoTorrent

Repository files navigation

GoTorrent

CircleCI License GoDoc

Bit-torrent client implementation as part of CS2433 (Principles of Programming Language II ) by Prof. Saurabh Joshi .

Description

  1. Objective
    • Get familiar with writing concurrent programs.
    • Using software technologies like Continous Integration, Unit Testing, Documentation.
  2. Features
    • Downloading multiple torrent files concurrently.
    • Fetching Peer lists from both HTTP and UDP Trackers.
    • Fetching pieces of blocks concurrently from Peers.
    • Enabling Resume capabilities on abrupt termination.
    • Generating detailed log files for debugging.
    • A command line interface for managing.
  3. Team
    • Shraiysh Gupta (CS17BTECH11050)
    • Puneet Mangla (CS17BTECH11029)
    • Lingam Sai Ramana Reddy (CS17BTECH11022)
    • Hitesh (MA17BTECH11004)

Documentation

  1. You can refer to this to see the documentation generated for the master branch.

Setup

  1. Installing Golang

    • Follow this link OR
    • Run sudo apt-get install golang
    • Set the environment variables GOPATH and GOBIN as follows :
      • GOPATH="$HOME/go"
      • GOBIN="$GOPATH/bin"
      • PATH=$PATH:$GOBIN
  2. Building

    Get dep for installing the dependencies

    $ cd $GOPATH/src/github.com # Come to the appropriate directory
    $ git clone https://github.com/IITH-SBJoshi/concurrency-8.git
    $ cd concurrency-8/
    $ dep ensure		# Get the dependencies
    $ ./build.sh    	# To check if all tests passes
    

Usage

  1. Downloading
    • go run main.go --files File1 File2 File3 -v -d ../../
  2. Flags
Flag Name Description Default
--files [path] [path] ... List of Torrent Files empty
--download -d Specify the download path for downloading the files. ""
--rescap -rc True if pause and resume feature is needed. False otherwise. false
--resume -r True to resume partially downloaded files. false
--help Print this help message and exit. -
--verbose -v True if misc output is required. False otherwise. false

External Packages

Resources and References

About

A BitTorrent client implementation as part of CS2433 (POPL-II)

Resources

License

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors