Skip to content

s1nator/BitTorrent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BitTorrent Client

Простой и эффективный BitTorrent-клиент, написанный на Python. Реализует основные функции протокола BitTorrent для скачивания файлов.

Возможности

  • Скачивание .torrent файлов: Поддержка стандартных торрент-файлов.
  • Многопоточность: Возможность одновременного скачивания нескольких торрентов.
  • Индикатор прогресса: Визуальное отображение прогресса скачивания в консоли.
  • Поддержка больших файлов: Эффективная работа с файлами любого размера (например, образы дисков) благодаря потоковой записи без полной загрузки в память.
  • Поддержка множества файлов: Корректная обработка торрентов, содержащих большое количество мелких файлов (поддержка структуры папок).
  • Возобновление скачивания: Проверка целостности и докачка файлов при перезапуске (валидация хешей существующих частей).
  • Выбор директории: Возможность указать папку для сохранения скачанных файлов.

Установка

  1. Клонируйте репозиторий.
  2. Установите необходимые зависимости, используя pip:
pip install -r requirements.txt

Использование

Запуск клиента осуществляется через модуль src.cli.main. Необходимо указать путь к одному или нескольким .torrent файлам.

Синтаксис

python3 -m src.cli.main [путь_к_torrent_файлу_1] [путь_к_torrent_файлу_2] ... -d [папка_назначения]

Аргументы

  • sources: Пути к .torrent файлам (можно указать несколько через пробел).
  • -d, --destination: (Необязательно) Папка, куда будут сохранены файлы.

Пример запуска

Скачивание файла Terraria-by-Igruha.torrent в папку Downloads/:

python3 -m src.cli.main /Users/user/Downloads/Terraria-by-Igruha.torrent -d /Users/user/Downloads

Структура проекта

  • src/cli/: Интерфейс командной строки и точка входа (main.py).
  • src/peer/: Логика взаимодействия с пирами (рукопожатие, обмен сообщениями, протокол).
  • src/torrent/: Парсинг файлов метаданных .torrent (bencoding).
  • src/tracker/: Взаимодействие с трекером для получения списка пиров.
  • src/storage/: Управление файловой системой, чтение/запись частей и валидация данных.
  • src/progress/: Отображение индикатора загрузки.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages