Skip to content
/ ent Public

Yet another BitTorrent Client, written in Rust

Notifications You must be signed in to change notification settings

Arkanayan/ent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ent

ent — Yet another BitTorrent client, written in Rust

A Rust-based BitTorrent client built for learning, experimentation, and extensibility. This project aims to implement core BitTorrent functionality with a clean and modular design.


Table of Contents


Features

  • Parse .torrent files and magnet links
  • Connect to HTTP trackers
  • Peer discovery and peer protocol support
  • Download pieces concurrently
  • SHA-1 integrity checks
  • (Planned) DHT, PEX, Local Peer Discovery
  • (Planned) Seeding and upload

Architecture & Design

  • Torrent Parser: Parses .torrent metadata using bencode
  • Tracker Client: Communicates with trackers to fetch peer lists
  • Peer Manager: Manages peer connections, handshakes, and data exchange
  • Piece Manager: Manages piece requests, validation, and storage
  • Concurrency: Async tasks via tokio
  • I/O: Disk write/read management for downloaded pieces

Getting Started

Prerequisites

  • Rust (latest stable)

Building

# Clone the repo
git clone https://github.com/Arkanayan/ent.git
cd ent

# Build in debug mode
cargo build

# Or build in release mode
cargo build --release

Usage

# Run debug mode
cargo run

# Or run in release mode
cargo run --release

Supported Protocols & Extensions

  • BEP-3: The BitTorrent Protocol
  • BEP-9: Magnet URI support (planned)
  • BEP-5: DHT Protocol (planned)
  • BEP-10: Extension Protocol (planned)
  • Local Peer Discovery (planned)
  • IPv6 / uTP support (planned)

Roadmap & TODOs

  • Magnet link support
  • DHT for trackerless peer discovery
  • Piece prioritization strategies
  • Upload/seeding support
  • Tests and CI
  • Better logging and error handling

License

MIT License

Acknowledgements

About

Yet another BitTorrent Client, written in Rust

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages