English | Português | 中文 | 日本語 | Русский | Español | Deutsch | Українська
BATorrent
Торент-клієнт з обличчям — обкладинки фільмів, шість тем, нуль реклами.
Більшість торент-клієнтів виглядають як податкова декларація. Цей показує ваші завантаження як **стіну обкладинок фільмів, серіалів та ігор** — те саме, що ви впізнаєте в Netflix чи Steam — і дозволяє вдягнути його в шість тем (або власні шпалери). Під капотом — перевірений рушій **libtorrent**, тож це не гарненька іграшка: це справжній клієнт, який просто має смак.
> **Без реклами. Без телеметрії. Без «Pro»-версії. Без акаунта.** Єдиний запит, який він робить сам, — це перевірка оновлень на GitHub, і її можна вимкнути. Вихідний код прямо тут — прочитайте [`updater.cpp`](src/services/integrations/updater.cpp) і переконайтеся самі.
## Навіщо це існує
Я один розробник із Бразилії. Мені був потрібен торент-клієнт, який серйозно ставиться до приватності, працює нативно на будь-якому десктопі й не виглядає так, ніби його зробили у 2009 році — а оскільки такого не знайшлося, я зробив свій. Він безкоштовний і під **ліцензією MIT**: без підступів, без телеметрії, що прокрадеться згодом, і його не можна тихо продати компанії, яка причепить рекламу. Вісім мов, бо «корисний» не має означати «лише англійською».
## Як це виглядає
- **Автоматичні обкладинки** — читає назву торента й підтягує справжній постер (фільми та серіали через TMDB, ігри через IGDB) у вигляд-сітку. Один клік перемикає на компактний список.
- **Шість тем** — Dark, Light, Midnight, Sakura, Dark Star і повністю **кастомна** (власний фон + акцентні кольори), кожна з опціональною аніме-графікою акценту.
- Графік швидкості в реальному часі, прогрес із кольором за станом, насичене спливне вікно в треї зі швидкостями та часом, що залишився — деталі, від яких він *відчувається* завершеним.
## Що він реально вміє
| | |
|---|---|
| 🔒 **Приватність передусім** | Прив'язка до VPN-інтерфейсу + **kill switch** (обриває весь трафік, якщо тунель упав), PT-режим для приватних трекерів, пресет Tor, анонімний handshake, блокування «п'явок» (anti-leecher) |
| 🔎 **Знайти та додати** | Вбудований пошук (вкл. відкриті джерела СНД/RuTor, без входу), Розумна вставка (magnet / `.torrent` / `thunder://` / hash по Ctrl+V), авто-завантаження через RSS із regex-фільтрами, drag-and-drop |
| 📱 **Керування звідусіль** | Веб-інтерфейс у браузері з **QR-сполученням** — відскануйте з телефона, без введення IP. QR генерується локально; ваша адреса ніколи не залишає машину |
| 📺 **Дивитися та впорядковувати** | Перегляд під час завантаження, авто-розпакування архівів, категорії + теги, оновлення бібліотеки Plex/Jellyfin/Emby після завершення |
| 🔔 **Бути в курсі** | Нативні сповіщення робочого столу, оповіщення в Telegram, Discord Rich Presence («Завантажується X · 67%») |
…і довгий хвіст (натисніть, щоб розгорнути)
Пріоритет за файлами · послідовне завантаження · авто-додавання трекерів · керування розкладкою вмісту · regex виключених файлів · тимчасова тека завантаження · стан «Завершено» з вікнами роздачі · авто-пауза за помилок файлів · глобальні + по-торенту ліміти рейтингу/часу · планувальник смуги пропускання (година + день) · імпорт із qBittorrent · створення `.torrent`-файлів · інспектор торента · списки блокування IP · шифрування протоколу · дзеркало оновлень Gitee · авто-вимкнення після завершення · виняток у Windows Defender · повний бекап/відновлення · історія нещодавно видалених · примусовий запуск · вбудований переглядач логів + діагностика + тест витоку IP · форматування з урахуванням локалі · гарячі клавіші.
## Рушій
Більшість торент-клієнтів лінкують стандартний libtorrent. BATorrent постачається з невеликим **пропатченим форком**, що дозволяє змінювати поведінку рушія, недосяжну через публічний API:
- **Швидший розгін конвеєра запитів.** На каналі з високою пропускною здатністю та високою затримкою стандартний конвеєр запитів росте по одному кроку; форк нарощує його геометрично й заповнює широкий канал за частку обмінів. У власному A/B-бенчмарку проєкту — близько **+27%** на швидкому каналі, без властивих стандарту провалів між запусками, і він ніколи не деградує.
- **Пріоритет пірів зі своєї країни.** Офлайн-база GeoIP (db-ip Lite) позначає кожен пір за країною, і ранжування пірів у форку за можливості віддає перевагу пірам із вашої країни — це зазвичай означає меншу затримку та менше тротлених транскордонних маршрутів.
Обидві функції — можливості форка часу компіляції (вимкнені у стандартному збиранні); вони застосовуються як версіоновані патчі в [`third_party/patches/`](third_party/patches), а не як вбудована копія.
## Завантажити
| Платформа | | |
|---|---|---|
| **Windows** | [Microsoft Store](https://apps.microsoft.com/detail/9n4l3tq24rc6) · [Інсталятор](https://github.com/BATorrent-app/BATorrent/releases/latest) · [Портативна версія](https://github.com/BATorrent-app/BATorrent/releases/latest) | Windows 10+ |
| **macOS** | **`brew install --cask Mateuscruz19/batorrent/batorrent`** · [`.dmg`](https://github.com/BATorrent-app/BATorrent/releases/latest) | macOS 12+ · Apple Silicon |
| **Linux** | [AppImage](https://github.com/BATorrent-app/BATorrent/releases/latest) | glibc 2.35+ |
Далі просто перетягніть `.torrent` або magnet у вікно. Ось і все.
**macOS:** поки без нотаризації (програма розробника Apple платна). Homebrew — найгладший шлях: `brew` знімає прапорець карантину, тож застосунок відкривається без діалогу Gatekeeper. Із `.dmg` уперше — правий клік → **Відкрити**.
Збірка з джерел та інженерні нотатки
### Вимоги
C++17 · CMake 3.16+ · Qt 6 (`Widgets`, `Network`, `Svg`, `Multimedia`) · libtorrent-rasterbar 2.0+ · Boost · Qt6Keychain (опціонально).
```bash
# Debian / Ubuntu
sudo apt install build-essential cmake qt6-base-dev qt6-svg-dev qt6-multimedia-dev \
libtorrent-rasterbar-dev libboost-dev libssl-dev
cmake -B build -DCMAKE_BUILD_TYPE=Release && cmake --build build -j && ./build/BATorrent
```
(macOS: `brew install qt libtorrent-rasterbar boost openssl`. Windows: інсталятор Qt + `vcpkg install libtorrent:x64-windows`.)
### Якість і безпека
- **Тести** — набір Catch2 (юніт, безпека, пам'ять) на кожній CI-збірці; нова поведінка бекенду отримує тест.
- **Санітайзери** — проходить чисто під AddressSanitizer + UndefinedBehaviorSanitizer (0 витоків / use-after-free / UB).
- **Перевірка** перед кожним релізом щодо безпеки пам'яті/потоків, автентифікації WebUI, ін'єкцій, path traversal, валідації введення та поводження із секретами. Секрети зберігаються в keychain ОС, ніколи у відкритому вигляді; WebUI відкривається в мережу лише після встановлення пароля.
## Внесок
Issues та PR вітаються — для всього нетривіального спершу відкрийте issue. Звіти про помилки: вкажіть вашу платформу + версію (`Довідка → Про програму`) і кроки відтворення. Переклади особливо вітаються.
## Ліцензія
[MIT](LICENSE) © 2024–2026 Mateus Cruz · зроблено в Бразилії 🦇