Ztorrent/README.md

5.8 KiB
Raw Blame History

ZTORRENT

Ztorrent — это минималистичный и невероятно быстрый консольный (TUI) BitTorrent-клиент, написанный на Go.

Он работает прямо в вашем терминале, поддерживает .torrent файлы и magnet-ссылки, умеет искать пиров через собственный встроенный DHT-движок и сохраняет историю всех ваших загрузок и логов.

ZTORRENT UI (Пример интерфейса — скриншот будет добавлен позже)


🔥 Ключевые возможности

  • 🚀 Полноценный TUI (Terminal UI) — стильный и отзывчивый интерфейс прямо в консоли (написан на BubbleTea).
  • 🧲 Поддержка Magnet-ссылок — загрузка метаданных "на лету" через встроенный DHT-сервер и UDP-трекеры.
  • 📁 Классические .torrent файлы — парсинг однофайловых и многофайловых торрентов, поддержка огромных раздач.
  • 💾 Журнал торрентов (History) — программа запоминает всё, что вы скачивали, и позволяет быстро перезапустить старую раздачу.
  • 📝 Логирование сессий — подробные логи каждого скачивания аккуратно сохраняются в Markdown-файлы (~/.ztorrent/logs/).
  • Мультитрекерность — автоматический опрос всех доступных трекеров по HTTP/HTTPS и UDP.
  • 🖥 Кроссплатформенность — работает на macOS, Linux и Windows.

🛠 Установка (Инструкция)

Требования

Для сборки из исходников вам понадобится установленный Go (версии 1.21+).

Шаг 1: Клонирование репозитория

Скачайте исходный код к себе на компьютер:

git clone https://github.com/твоё_имя/ztorrent.git
cd ztorrent

Шаг 2: Сборка программы

Соберите бинарный файл ztrr стандартной командой Go. (Мы используем директорию cmd/ztrr как точку входа):

go build -o ztrr ./cmd/ztrr

Дополнительно: если хотите вшить версию и дату сборки (отображается по кнопке ?), используйте эту команду:

VERSION="1.0.0" && BUILDDATE=$(date -u +%Y-%m-%d) && COMMIT=$(git rev-parse --short HEAD 2>/dev/null || echo "unknown") && go build -ldflags="-X 'github.com/veggiedefender/torrent-client/internal/version.Version=${VERSION}' -X 'github.com/veggiedefender/torrent-client/internal/version.BuildDate=${BUILDDATE}' -X 'github.com/veggiedefender/torrent-client/internal/version.GitCommit=${COMMIT}'" -o ztrr ./cmd/ztrr

Шаг 3: Глобальная установка (Опционально)

Чтобы запускать торрент-клиент из любой папки, перенесите собранный файл в /usr/local/bin (или в любую папку из вашего $PATH):

sudo mv ztrr /usr/local/bin/

Теперь вы можете запустить клиент просто написав в терминале:

ztrr

🎮 Использование и Горячие клавиши

После запуска программы перед вами откроется экран приветствия. Вы можете ввести путь к .torrent файлу вручную, либо нажать F, чтобы выбрать его через системный проводник. Также поддерживается вставка magnet-ссылки прямо в текстовое поле.

Горячие клавиши (Доступны отовсюду):

  • J или 5Журнал торрентов: список ранее скачанных торрентов.
  • L или 6Журнал логов: подробные технические логи (помогают понять, почему торрент не качается).
  • ? или 7О программе: версия, дата сборки и список всех хоткеев.
  • Q или Ctrl+C — Выйти из программы.

Во время скачивания (Дашборд):

  • 1-4 / Tab — Переключение вкладок (Обзор, Пиры, Файлы, Трекеры).
  • Пробел или S — Пауза / Продолжить скачивание.
  • O — Закрыть текущий торрент и открыть окно нового.
  • C — Очистить всё.

📂 Где хранятся данные?

Все служебные данные Ztorrent хранит в вашей домашней директории:

  • ~/.ztorrent/history.json — база данных ваших загрузок (Журнал).
  • ~/.ztorrent/logs/ — markdown-файлы с логами для каждой сессии скачивания.

Лицензия

Ztorrent распространяется под лицензией MIT. Вы можете свободно изменять и распространять код.