docs: update README with Russian translation and install guide

This commit is contained in:
itexpert228 2026-07-16 16:11:48 +03:00
parent 390c8412e3
commit 7cf20e00c6

View file

@ -1,30 +1,85 @@
# Ztorrent
# ZTORRENT ⚡
Minimal BitTorrent client skeleton in Go.
**Ztorrent** — это минималистичный и невероятно быстрый консольный (TUI) BitTorrent-клиент, написанный на Go.
## Run
Он работает прямо в вашем терминале, поддерживает `.torrent` файлы и **magnet-ссылки**, умеет искать пиров через собственный встроенный **DHT-движок** и сохраняет историю всех ваших загрузок и логов.
![ZTORRENT UI](https://raw.githubusercontent.com/veggiedefender/torrent-client/main/.github/demo.png) *(Пример интерфейса — скриншот будет добавлен позже)*
---
## 🔥 Ключевые возможности
- 🚀 **Полноценный TUI (Terminal UI)** — стильный и отзывчивый интерфейс прямо в консоли (написан на BubbleTea).
- 🧲 **Поддержка Magnet-ссылок** — загрузка метаданных "на лету" через встроенный DHT-сервер и UDP-трекеры.
- 📁 **Классические `.torrent` файлы** — парсинг однофайловых и многофайловых торрентов, поддержка огромных раздач.
- 💾 **Журнал торрентов (History)** — программа запоминает всё, что вы скачивали, и позволяет быстро перезапустить старую раздачу.
- 📝 **Логирование сессий** — подробные логи каждого скачивания аккуратно сохраняются в Markdown-файлы (`~/.ztorrent/logs/`).
- ⚡ **Мультитрекерность** — автоматический опрос всех доступных трекеров по HTTP/HTTPS и UDP.
- 🖥 **Кроссплатформенность** — работает на macOS, Linux и Windows.
---
## 🛠 Установка (Инструкция)
### Требования
Для сборки из исходников вам понадобится установленный [Go (версии 1.21+)](https://go.dev/dl/).
### Шаг 1: Клонирование репозитория
Скачайте исходный код к себе на компьютер:
```bash
go run ./cmd/torrent-client
git clone https://github.com/твоё_имя/ztorrent.git
cd ztorrent
```
App starts a native desktop GUI window.
## Current features
- Parse `.torrent` metadata and piece hashes
- Compute `info_hash` from raw `info` bytes (spec-compatible)
- Single-file and multi-file torrents
- Send tracker announce requests via HTTP(S) and UDP trackers
- Parse compact peer list
- Multi-tracker fallback (including public trackers)
- Native GUI for loading torrents by path and browsing files
- Show tracker states, discovered peers, and torrent file list in the GUI
## Build (macOS/Linux/Windows)
### Шаг 2: Сборка программы
Соберите бинарный файл `ztrr` стандартной командой Go. (Мы используем директорию `cmd/ztrr` как точку входа):
```bash
./scripts/build-all.sh
go build -o ztrr ./cmd/ztrr
```
Note: for non-host targets with native GUI, cross C toolchains are required; unsupported targets are skipped.
*Дополнительно: если хотите вшить версию и дату сборки (отображается по кнопке `?`), используйте эту команду:*
```bash
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`):
```bash
sudo mv ztrr /usr/local/bin/
```
Теперь вы можете запустить клиент просто написав в терминале:
```bash
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. Вы можете свободно изменять и распространять код.