Простой и эффективный BitTorrent-клиент, написанный на Python. Реализует основные функции протокола BitTorrent для скачивания файлов.
- Скачивание .torrent файлов: Поддержка стандартных торрент-файлов.
- Многопоточность: Возможность одновременного скачивания нескольких торрентов.
- Индикатор прогресса: Визуальное отображение прогресса скачивания в консоли.
- Поддержка больших файлов: Эффективная работа с файлами любого размера (например, образы дисков) благодаря потоковой записи без полной загрузки в память.
- Поддержка множества файлов: Корректная обработка торрентов, содержащих большое количество мелких файлов (поддержка структуры папок).
- Возобновление скачивания: Проверка целостности и докачка файлов при перезапуске (валидация хешей существующих частей).
- Выбор директории: Возможность указать папку для сохранения скачанных файлов.
- Клонируйте репозиторий.
- Установите необходимые зависимости, используя
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/Downloadssrc/cli/: Интерфейс командной строки и точка входа (main.py).src/peer/: Логика взаимодействия с пирами (рукопожатие, обмен сообщениями, протокол).src/torrent/: Парсинг файлов метаданных.torrent(bencoding).src/tracker/: Взаимодействие с трекером для получения списка пиров.src/storage/: Управление файловой системой, чтение/запись частей и валидация данных.src/progress/: Отображение индикатора загрузки.