Skip to content
/ RaBit Public

A pure Python asynchronous BitTorrent Client

License

Notifications You must be signed in to change notification settings

Rb49/RaBit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

97 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RaBit

A pure Python asynchronous BitTorrent Client

Features

  • HTTP and UDP tracker announces + compact response support (BEP 3, BEP 7, BEP 12, BEP 15, BEP 23)
  • Download a multi-file torrent using all strategies (BEP 3, BEP 20)
  • Download multiple torrents simultaneously
  • Seeding + tracker updating in intervals
  • Smart ban
  • Location-based peer filtering
  • Canonical peer priority for seeding (BEP 40)
  • UPnP port forwarding with randomization
  • User interface
  • Compatible with Windows / Linux / macOS

Limitations

You won't be able to:

  • Use protocol extensions
  • Seed in ipv6
  • Download / seed without an upnp-enabled router or seed from a double nat
  • Download from magnet links
  • Contribute to incoming connections during download (only to outgoing)

Usage and installation

Important

To mitigate unexpected behavior, use a python version equal or above 3.10

  1. Go to src directory with cd RaBit/src

  2. Install required libraries with pip install -r requirements.txt

  3. Run with GUI: main.py

    Run without GUI: viewless.py (with args: seed: bool, torrent_path: str, result_path: str, skip_hash_check: bool)

Running reset.py can be helpful with a file-related problem.

Usage example

Downloading Linux Debian iso:

debian_demo.mp4

Screenshots

Full screen in Windows:

windows_1080p_download

Minimized screen in Windows:

windows_1080p_minimized

Full screen in Kali-Linux:

linux_download

Minimized screen in macOS:

macos_download

Releases

No releases published

Packages

No packages published

Languages