docs: update README with Russian translation and install guide
This commit is contained in:
parent
5c841ab5d9
commit
d11c4cd43b
1 changed files with 76 additions and 21 deletions
97
README.md
97
README.md
|
|
@ -1,30 +1,85 @@
|
||||||
# Ztorrent
|
# ZTORRENT ⚡
|
||||||
|
|
||||||
Minimal BitTorrent client skeleton in Go.
|
**Ztorrent** — это минималистичный и невероятно быстрый консольный (TUI) BitTorrent-клиент, написанный на Go.
|
||||||
|
|
||||||
## Run
|
Он работает прямо в вашем терминале, поддерживает `.torrent` файлы и **magnet-ссылки**, умеет искать пиров через собственный встроенный **DHT-движок** и сохраняет историю всех ваших загрузок и логов.
|
||||||
|
|
||||||
|
 *(Пример интерфейса — скриншот будет добавлен позже)*
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔥 Ключевые возможности
|
||||||
|
|
||||||
|
- 🚀 **Полноценный 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
|
```bash
|
||||||
go run ./cmd/torrent-client
|
git clone https://github.com/твоё_имя/ztorrent.git
|
||||||
|
cd ztorrent
|
||||||
```
|
```
|
||||||
|
|
||||||
App starts a native desktop GUI window.
|
### Шаг 2: Сборка программы
|
||||||
|
Соберите бинарный файл `ztrr` стандартной командой Go. (Мы используем директорию `cmd/ztrr` как точку входа):
|
||||||
## 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)
|
|
||||||
|
|
||||||
```bash
|
```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. Вы можете свободно изменять и распространять код.
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue