Rusty_Torrent BitTorrent Client

GitHub GitHub last commit GitHub stars

A BitTorrent client implemented in Rust that allows you to interact with the BitTorrent protocol and download torrents.

Table of Contents

Introduction

This BitTorrent client is designed to provide a simple and functional implementation of the BitTorrent protocol. It supports downloading torrents and interacting with peers to exchange pieces of files.

Features

Getting Started

Prerequisites

Installation

  1. Clone the repository:

bash git clone https://github.com/ArloFilley/rusty_torrent.git

  1. Navigate to the project directory:

bash cd rusty_torrent

  1. Build the project

bash cargo build --release

Usage

To use the BitTorrent client, follow these steps:

  1. Run the compiled binary:

bash cargo run --release

  1. Provide the path to a .torrent file:

bash cargo run --release /path/to/your.torrent

  1. Provide the path to download bash cargo run --release /path/to/your.torrent /path/to/downloads

  2. Clap help message ``` A BitTorrent client implemented in Rust that allows you to interact with the BitTorrent protocol and download torrents.

Usage: rusty_torrent [OPTIONS] --torrent-file-path --download-path

Options: -l, --log-file-path
-t, --torrent-file-path
-d, --download-path
-h, --help Print help -V, --version Print version

```

The client will start downloading the torrent files and interacting with peers.

How It Works

This BitTorrent client uses Rust's asynchronous programming features to manage connections with peers and perform file downloads. It employs the BitTorrent protocol's handshake and communication mechanisms to exchange pieces of data with other peers in the network. The client also verifies downloaded pieces using SHA-1 hashes provided by the torrent file.

Contributing

Contributions are welcome! If you find any bugs or want to add new features, please feel free to open issues and pull requests on the GitHub repository.

License

This project is licensed under the MIT License.