https://github.com/lambdaclass/libtorrent-rs
A Rust implementation of the BitTorrent V2 protocol
https://github.com/lambdaclass/libtorrent-rs
Last synced: 8 months ago
JSON representation
A Rust implementation of the BitTorrent V2 protocol
- Host: GitHub
- URL: https://github.com/lambdaclass/libtorrent-rs
- Owner: lambdaclass
- License: mit
- Created: 2022-12-14T13:54:03.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-02-24T18:07:56.000Z (over 3 years ago)
- Last Synced: 2025-08-08T17:54:52.879Z (10 months ago)
- Language: Rust
- Homepage:
- Size: 132 KB
- Stars: 59
- Watchers: 5
- Forks: 10
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: CODEOWNERS
Awesome Lists containing this project
README
# libtorrent-rs
A Rust implementation of the [BitTorrent V2](http://bittorrent.org/beps/bep_0052.html) protocol. For now only V1 is implemented but we're working on V2.
## Dependencies
- Rust
- Cargo
## Running
To run the program there needs to be a `.cfg` file in the `configs` directory of the project. We provide two with default values as an example.
Then run the program with `cargo` followed by the directory containing the `.torrent` files, and the directory and name of the `.cfg` file as shown below:
```bash
$ cargo run --bin dtorrent -- --file ./torrents/file_name --config ./configs/config_file
```
On startup the client gets all the `.torrent` files on the specified directory and immediately starts the download & upload.
## Testing
Run the test suite:
```bash
make test
```
## BitTorrent Specification
- [Index of BitTorrent Enhancement Proposals](http://bittorrent.org/beps/bep_0000.html)
- [The BitTorrent Protocol Specification v2](http://bittorrent.org/beps/bep_0052.html)
- [DHT Protocol](http://bittorrent.org/beps/bep_0005.html)