Симптом: на macOS приложение не запускается совсем — иконка подпрыгивает в доке и гаснет, хотя разрешение выдано. Причина. В #25 в крейте появился второй бинарь tglock-cli, а mainBinaryName в tauri.conf.json задан не был. Бандлер Tauri выбрал главным исполняемым файлом приложения headless CLI. Запуск .app стартовал консольный прокси, окна не создавалось. Проверено на опубликованных артефактах: CFBundleExecutable размер MacOS/* beta.1 tglock 18.6 МБ ← GUI, правильно beta.2 tglock-cli 4.5 МБ ← консольный прокси Задеты все платформы, не только macOS. В .deb лежит usr/bin/tglock-cli, а в TGLock.desktop прописан Exec=tglock-cli. Установщик Windows упал с 2.0 МБ до 0.6 МБ — тот же признак. То есть beta.2 не запускается нигде. Почему это уехало с зелёным CI: сборка релиза была успешной, потому что никто не проверял, что внутри бандла. Тесты гоняют ядро, а не собранное приложение. Исправление: mainBinaryName = "tglock" в tauri.conf.json. Проверено сборкой на этой же ветке — Tauri берёт tglock.exe, установщик вернулся к нормальному размеру. Чтобы это не повторилось, добавлены две проверки: - в CI, на каждый PR: mainBinaryName обязан совпадать с именем [[bin]], у которого required-features = ["gui"]. Проверено в обе стороны — на верном конфиге проходит, на подставленном tglock-cli падает; - в release.yml, после сборки: на macOS читается CFBundleExecutable из Info.plist, на Linux проверяется наличие /usr/bin/tglock в .deb. Смотрит внутрь настоящего артефакта, а не в конфиг. README: пример команды с хешем больше не прибит к конкретной версии, ссылка на запуск сборки заменена на общее указание, и добавлена строка для тех, кто уже скачал beta.2 и не смог её открыть. Co-authored-by: by-sonic <171230345+by-sonic@users.noreply.github.com>
40 KiB
Быстрый VPN для России — YouTube без буферизации, Discord/Instagram/ChatGPT снова работают.
Подключение в Telegram через @rosevpnru_bot — бесплатный пробный период, без регистрации, без карты.
🔓 TGLock
Обход блокировки Telegram через WebSocket-туннель
Один клик. Без VPN. Без серверов. Без подписки.
Telegram стал тормозить или перестал открываться? Запусти TGLock — и мессенджер снова работает. Не нужны VPN, прокси-серверы, абонентская плата или регистрация.
🤔 Что это и зачем
TGLock — это локальный прокси на твоём компьютере: принимает и MTProto, и SOCKS5. Он перехватывает соединения Telegram, заворачивает их в WebSocket и отправляет на веб-инфраструктуру Telegram — по нескольким маршрутам сразу, переключаясь на следующий, если текущий перестал отвечать. Провайдер видит обычный HTTPS.
Кому подойдёт:
- 📱 Telegram открывается через раз, сообщения уходят с задержкой, фото и видео не грузятся
- 🛡 GoodbyeDPI, Zapret или ByeDPI больше не помогают — провайдер шейпит по IP
- 🍎 Нужен графический интерфейс под macOS
- 💻 Нужно решение для Windows, macOS или Linux без подписок и без своего сервера
- 🖥 Нужен вариант для сервера или машины без монитора — для этого есть
tglock-cli
Чего TGLock не делает — честно, чтобы не тратить твоё время:
- ❌ Голосовые и видеозвонки. Они идут по UDP, а TGLock проксирует только TCP. Со звонками ничего не изменится
- ❌ Всё, кроме Telegram. YouTube, Discord, Instagram, ChatGPT работать не начнут: TGLock разворачивает только MTProto — протокол, который больше нигде не используется
- ❌ Android и iOS. Своего приложения нет. Телефон можно подключить к TGLock на компьютере через LAN-режим
Чем отличается от VPN: TGLock работает только с Telegram. Остальной трафик идёт напрямую — ничего не замедляется, мобильный трафик не расходуется впустую.
⚡ Скачать
| Платформа | Файл |
|---|---|
| Windows 10/11 (x64) | _x64-setup.exe |
| macOS (Apple Silicon + Intel) | universal .dmg |
| Linux (x86_64) | .deb |
| Linux (x86_64, портативно) | .AppImage |
| Сервер, контейнер, машина без монитора | tglock-cli-* |
Все сборки весят единицы мегабайт. Исключение — .AppImage: он несёт своё окружение и поэтому крупный.
🖥
tglock-cli— тот же туннель без графического интерфейса, одним бинарём. Нужен там, где окно не создаётся: сервер, контейнер, виртуалка, машина без монитора. Доступен начиная сv2.0.0-beta.2. Если ты скачал beta.2 и приложение не открывалось — это была ошибка сборки, исправлено в beta.3. Подробности — ниже.
🛡 Антивирус ругается, SmartScreen предупреждает, VirusTotal показывает детекты
Так и будет. Объясню механизм и дам способы проверить, не доверяя мне на слово.
Что ты увидишь. На Windows — «Система Windows защитила ваш компьютер» от SmartScreen. На VirusTotal — детекты у части движков, обычно единицы из примерно шестидесяти.
Почему. Складываются две вещи. Установщик не подписан сертификатом, а неподписанные файлы проверяются эвристиками гораздо строже, чем подписанные. И само поведение программы — открыть локальный порт, объявить себя прокси-сервером, прописаться в настройки соединения Telegram — это ровно тот профиль, по которому эвристики ищут прокси-трояны. Программа делает именно это, только по твоей просьбе. Отличить одно от другого автоматически движок не может, поэтому и реагирует.
Подписи не будет. Сертификат — это ежегодный платёж, а проект бесплатный и ничего не зарабатывает. Значит предупреждение останется, и делать вид, что «скоро подпишем», я не буду.
Как проверить вместо доверия. Три способа, все не требуют верить мне:
-
Сверить контрольную сумму. GitHub публикует
sha256каждого файла прямо на странице релиза — разверниAssetsи увидишь digest рядом с именем. Сравни с тем, что скачалось:Get-FileHash .\TGLock_<версия>_x64-setup.exe -Algorithm SHA256sha256sum tglock-cli-x86_64-unknown-linux-gnu # Linux shasum -a 256 tglock-cli-universal-apple-darwin # macOSЭто доказывает, что файл не подменили по пути к тебе.
-
Посмотреть, как файл собирался. Бинарники собирает GitHub Actions из публичного коммита, лог открыт и его никто не может отредактировать задним числом. У каждого релиза на странице Actions есть свой запуск: видно, какой коммит взят и какими командами собран. Ссылка на него — в описании релиза.
-
Собрать самому. Для CLI это одна команда и никаких зависимостей кроме Rust:
cargo build --release --locked --no-default-features --bin tglock-cliПолная сборка с интерфейсом — ниже.
Если этого недостаточно — не запускай. Это нормальное решение, а не паранойя: исполняемый файл из интернета без подписи заслуживает недоверия по умолчанию. Собери из исходников или возьми tg-ws-proxy — он решает ту же задачу и тоже открыт.
🍎 macOS: пока сборка не нотарифицирована Apple, при первом запуске может понадобиться:
xattr -cr /Applications/TGLock.appЭто снимает карантин Gatekeeper с приложения, скачанного из GitHub.
🚀 Как пользоваться
- Скачай и запусти приложение для своей системы.
- Нажми «Включить защиту».
- TGLock откроет Telegram и предложит подключить локальный MTProto-прокси.
- ✅ Telegram работает. Окно TGLock можно свернуть.
Ручная настройка (если автоматическая не сработала)
Telegram → Настройки → Продвинутые → Тип соединения → Использовать прокси → SOCKS5
- Сервер:
127.0.0.1 - Порт:
1080
🏠 LAN-режим — один прокси на всю квартиру
В окне TGLock включи галочку LAN — приложение начнёт слушать на 0.0.0.0. Все устройства в домашней сети (телефон, планшет, ноутбук, телевизор) смогут подключиться к <IP-компьютера>:1080 и тоже получить рабочий Telegram.
Ссылку tg://proxy с уже подставленным адресом TGLock открывает сам при включении — её достаточно переслать себе в Telegram и открыть на телефоне. Если нужен адрес руками: ipconfig на Windows, ip a на Linux, ifconfig на macOS.
Удобно, если дома один компьютер всегда включён — он становится «домашним Telegram-роутером».
В LAN-режиме TGLock пропускает только адреса Telegram. Открытым SOCKS5-прокси для всего интернета он при этом не становится — иначе им бы воспользовались не только твои устройства.
🖥 Без графического интерфейса: tglock-cli
Для сервера, виртуалки, контейнера и машины без монитора или без 3D-ускорения. Это отдельный бинарь, в котором нет ни Tauri, ни системного WebView — там, где окно просто не создаётся, CLI работает.
tglock-cli # 127.0.0.1:1080, только для этого компьютера
tglock-cli --lan # 0.0.0.0:1080, только адреса Telegram
tglock-cli --bind 10.0.0.5 --port 1443 # свой адрес и порт
tglock-cli --worker my-name.workers.dev # резервный маршрут, см. docs/CLOUDFLARE_WORKER.md
tglock-cli --help # все флаги
При запуске печатается готовая tg://proxy-ссылка — её можно открыть на любом устройстве в сети, чтобы Telegram настроился сам. Дальше в лог идёт по строке на каждое изменение состояния: сколько соединений, какой дата-центр, какой маршрут живой, сколько сбоев.
Прав администратора не нужно: TGLock не правит ни системный DNS, ни файл hosts — нужные адреса Telegram зашиты в маршрутах, а TLS SNI остаётся настоящим.
--lan и любой другой сетевой адрес пропускают только адреса Telegram. Обычным SOCKS5-прокси TGLock становится исключительно по явному --allow-direct, и на сетевом адресе это открытый прокси для всего интернета — включайте осознанно.
Юнит для systemd
[Unit]
Description=TGLock — Telegram через WebSocket-туннель
After=network-online.target
Wants=network-online.target
[Service]
Type=exec
ExecStart=/usr/local/bin/tglock-cli --lan --secret-file /var/lib/tglock/secret
Restart=on-failure
RestartSec=5s
StateDirectory=tglock
DynamicUser=yes
NoNewPrivileges=yes
ProtectSystem=strict
ProtectHome=yes
PrivateTmp=yes
RestrictAddressFamilies=AF_INET AF_INET6
[Install]
WantedBy=multi-user.target
sudo install -m755 tglock-cli-x86_64-unknown-linux-gnu /usr/local/bin/tglock-cli
sudo systemctl enable --now tglock
journalctl -u tglock -f
--secret-file здесь обязателен, и это не украшение: секрет — половина tg://proxy-ссылки. Без файла он генерируется заново при каждом старте, и после первого же systemctl restart все настроенные клиенты перестанут подключаться. StateDirectory=tglock создаёт /var/lib/tglock с нужными правами, а сам файл пишется с режимом 600.
Остановка по systemctl stop приходит как SIGTERM — CLI закрывает туннели и выходит с нулевым кодом, а не умирает по SIGKILL.
Docker
FROM rust:1.88 AS build
WORKDIR /src
COPY . .
RUN cargo build --release --locked --no-default-features --bin tglock-cli
FROM debian:bookworm-slim
RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates \
&& rm -rf /var/lib/apt/lists/*
COPY --from=build /src/target/release/tglock-cli /usr/local/bin/tglock-cli
EXPOSE 1080
ENTRYPOINT ["tglock-cli", "--lan", "--secret-file", "/data/secret"]
docker run -d --name tglock -p 1080:1080 -v tglock-data:/data tglock
Образу не нужны ни Node.js, ни libwebkit2gtk — только ca-certificates для проверки сертификата Telegram.
🔬 Как это работает
Telegram Desktop / mobile (через LAN)
▼
MTProto или SOCKS5 (127.0.0.1:1080 либо 0.0.0.0:1080)
▼
TGLock — читает первые 64 байта
obfuscated2 init-пакета,
расшифровывает AES-256-CTR,
достаёт номер DC
▼
WSS → kws{dc}.web.telegram.org
каскад маршрутов, см. ниже
▼
Telegram Data Center
- Локальный прокси принимает соединения Telegram: и MTProto (по ссылке
tg://proxy), и SOCKS5. - Из первых 64 байт
obfuscated2-пакета расшифровывается номер DC — AES-256-CTR, ключ в байтах[8..40], IV в[40..56], индекс DC —i16в[60..62]. Отрицательное значение означает медиа-соединение. - Трафик заворачивается в WebSocket к
kws{dc}.web.telegram.org— это тот же домен, через который работает Telegram Web в браузере. - Маршрут выбирается каскадом, и это главное отличие 2.0 от первой версии. Один домен может резолвиться в недоступный адрес, поэтому по очереди пробуются: закреплённые IP Telegram, их дублёры
kwsN-1, системный DNS и — если ты его настроил — твой собственный Cloudflare Worker. Упавший маршрут уходит в cooldown с удвоением задержки, удачный запоминается для этого DC. Системный DNS и файлhostsпри этом не изменяются: TCP-соединение идёт на закреплённый IP, а TLS SNI и заголовокHostостаются настоящими, поэтому сертификат Telegram проверяется как обычно. - Провайдер видит TLS-handshake к
web.telegram.org— легитимный HTTPS, MTProto в нём не виден. - Весь остальной трафик (не-Telegram) проходит напрямую — без замедления.
Интерфейс различает три состояния и не выдаёт одно за другое: «Защита включена» — локальный порт открыт, туннеля пока нет; «Ищем новый маршрут» — попытки были неудачными, идёт перебор; «Telegram на связи» — есть установленный туннель, то есть WebSocket-рукопожатие уже прошло. Смешивание первого и третьего состояния и было основной причиной жалоб «прокси подключён, а Telegram не работает».
📖 Архитектура 2.0, различение протоколов и честный список ограничений — docs/ARCHITECTURE_V2.md. Запасной маршрут через свой Cloudflare Worker, со скриптом и пошаговой установкой — docs/CLOUDFLARE_WORKER.md. Разбор всех issue и того, что в них было обещано зря — docs/ISSUE_AUDIT.md. Черновик статьи про переход v1 → v2 лежит в HABR.md — цифры там описывают код на момент написания, документацией он не является.
🆚 Сравнение с альтернативами
| GoodbyeDPI | Zapret | AmneziaVPN | TGLock | |
|---|---|---|---|---|
| Подход | Фрагментация пакетов | TCP/UDP desync | Полноценный VPN-туннель | WebSocket-туннель |
| Обходит IP-шейпинг | ❌ | ❌ | ✅ | ✅ |
| macOS (GUI) | ❌ Windows only | ❌ только CLI | ✅ | ✅ |
| Нужен сервер / подписка | ❌ | ❌ | ✅ ($) | ❌ |
| Только Telegram | ❌ | ❌ | ❌ | ✅ |
| LAN-шаринг | ❌ | сложно | ✅ | ✅ (галочка) |
| Режим без GUI | ✅ | ✅ | ❌ | ✅ (tglock-cli) |
| Размер | ~200 КБ | ~5 МБ | ~80 МБ | 2 МБ установщик, 2 МБ CLI |
| Цена | 0 ₽ | 0 ₽ | свой сервер | 0 ₽ |
⚠ Когда TGLock не подойдёт: если заблокирован не только Telegram, а ещё YouTube, Discord, Instagram или ChatGPT — обходить каждый сервис отдельно смысла нет, нужен полноценный VPN. TGLock эту задачу не решает и решать не будет: он разворачивает только MTProto.
Звонки тоже не заработают — они по UDP, а TGLock проксирует только TCP.
❓ Часто задаваемые вопросы
Telegram заблокировали в России — это правда?
Полностью Telegram в РФ не заблокирован, но провайдеры замедляют трафик через DPI и шейпят по IP-диапазонам Telegram DC (149.154.160–175, 91.108.4–8, 91.108.56–59 и др.). У части пользователей мессенджер открывается через раз, видео не грузится, фото уходят минутами.
TGLock решает именно это — заворачивает Telegram-трафик в HTTPS к веб-инфраструктуре Telegram, которая под шейпинг не попадает. Голосовые и видеозвонки он не лечит: они идут по UDP, а TGLock проксирует только TCP.
Это безопасно? Что с моими данными?
TGLock — локальный прокси. Он работает только на твоём компьютере и не отправляет данные третьим сторонам. Соединение идёт к серверам Telegram через их же домен web.telegram.org — тот же, что использует Telegram Web в браузере. Единственное исключение — если ты сам укажешь в настройках свой Cloudflare Worker как резервный маршрут; по умолчанию это поле пустое, и никакой сторонней инфраструктуры в схеме нет.
Кода — около 2900 строк Rust (из них ~1100 приходится на тесты) и ~380 строк TypeScript на интерфейс. Всё открыто, можно прочитать и собрать самому. Бинарники в релизах собираются из этого же исходника в GitHub Actions — логи сборки публичные.
Чем отличается от GoodbyeDPI / Zapret / ByeDPI?
GoodbyeDPI, Zapret и ByeDPI фрагментируют пакеты, чтобы DPI не распознал MTProto. Это работает, пока провайдер блокирует по содержимому. Но если шейпинг идёт по IP (а так делают большинство крупных РФ-провайдеров с 2024–2026 — Ростелеком, МТС, Билайн, Мегафон), фрагментация не помогает: пакеты всё равно идут на «нехороший» IP и троттлятся.
TGLock же отправляет трафик на web.telegram.org — обычный HTTPS-домен, который под IP-шейпинг Telegram DC не попадает.
Работает ли на iPhone или Android?
Своего приложения под Android и iOS нет — TGLock только для desktop. Есть два обходных пути:
- LAN-режим на компьютере. Включи галочку LAN, и в настройках Telegram на телефоне укажи прокси с IP компьютера. Работает, пока компьютер включён и телефон в той же сети.
tglock-cliна своём VPS. Headless-бинарь запускается как systemd-сервис, слушает0.0.0.0и пропускает только адреса Telegram — тогда телефон работает откуда угодно, а не только из дома. См. раздел про CLI.
Поддержка Android обсуждается в #9, сроков нет: Tauri 2 умеет собирать под Android, но перехват трафика там делается через VpnService — это другая архитектура, а не пересборка того же кода.
Замедляет ли TGLock интернет?
Нет. Через прокси идёт только трафик Telegram (фильтрация по IP-диапазонам Telegram DC). YouTube, браузер, игры, торренты — всё это идёт напрямую и не замедляется. В этом главное отличие от VPN.
Apple ругается «приложение не проверено / нельзя открыть»
Сборка пока не подписана и не нотарифицирована — Apple Developer ID стоит $99 в год. Сними карантин Gatekeeper руками: перенеси приложение из .dmg в «Программы» и выполни в Терминале
xattr -cr /Applications/TGLock.app
После этого приложение запустится двойным кликом из Finder.
Telegram пишет «прокси не настроен» или сразу отключается
Открой TGLock — он должен показывать «ПОДКЛЮЧЕНО» и хотя бы одно активное соединение, когда Telegram пытается работать. Если соединений ноль:
- Не запущен ли уже другой прокси на порту 1080? В TGLock можно поменять порт в настройках.
- Антивирус/файрвол не блокирует localhost-подключения?
- В настройках Telegram сервер указан как
127.0.0.1, неlocalhost— на некоторых системах это разные сетевые стеки. - На macOS — убедись что снят Gatekeeper (
xattr -cr ...).
Приложение вообще не запускается — окно не появляется
Так проявляется отсутствие 3D-ускорения: интерфейс построен на системном WebView, а тот без ускорения окно не создаёт. Отсюда же случаи «не работает в виртуалке», «не стартует с дефолтным драйвером Microsoft» и «нет монитора».
Начиная с 2.0.0-beta.2 TGLock сам просит у WebView программный рендер, так что на таких машинах должен запускаться. Если хочется вернуть аппаратное ускорение — запусти с переменной TGLOCK_FORCE_GPU=1.
Если окно всё равно не появилось, интерфейс тебе и не нужен: возьми tglock-cli, которому WebView не требуется вообще. И напиши в #10 или #17, что именно за система — это как раз те ишью.
Порт 1080 уже занят другим приложением
В окне TGLock есть поле «Порт» — поменяй на любой свободный (например, 10800, 1081, 8888). После рестарта прокси автоматически обновит deep-link для Telegram. В настройках Telegram укажи новый порт.
А что если провайдер заблокирует и web.telegram.org?
Это реальный риск, и TGLock 2.0 к нему подготовлен настолько, насколько может.
Маршрут не один: пробуются закреплённые IP Telegram, дублёры kwsN-1 и системный DNS. Пока жив хотя бы один — туннель поднимается.
Если у твоего провайдера легли все маршруты, есть запасной выход — свой Cloudflare Worker. Тогда соединение идёт на твой домен *.workers.dev, а воркер доводит его до Telegram; блокировать его провайдеру придётся отдельно. Готовый скрипт и пошаговая установка: docs/CLOUDFLARE_WORKER.md. Нужен только аккаунт Cloudflare, бесплатного тарифа хватает, свой сервер и домен не нужны.
Признак, что пора это делать: приложение показывает «Ищем новый маршрут» и не проходит, а в диагностике туннелей 0 и растёт счётчик сбоев. Если Telegram работает — настраивать ничего не надо.
Но честно: если веб-версию Telegram заблокируют так, что её не видно и из датацентров Cloudflare, подход исчерпает себя. TGLock держится на доступности web.telegram.org, и никакой запас маршрутов этого не отменяет.
Можно ли использовать TGLock как обычный SOCKS5 для других приложений?
Смысла нет, и по умолчанию это запрещено.
TGLock определяет Telegram по IP получателя и заворачивает в WebSocket только его. Не-Telegram адреса он релеит напрямую — без шифрования, то есть никакой пользы для обхода в этом нет.
Поэтому такой релей разрешён только когда прокси слушает 127.0.0.1, где до него дотянутся лишь процессы твоего компьютера. На 0.0.0.0 и любом сетевом адресе не-Telegram запросы отклоняются: иначе LAN-режим сделал бы из твоей машины открытый прокси для всего интернета. В tglock-cli это можно переопределить флагом --allow-direct — но на сетевом адресе ты получишь именно открытый SOCKS5, так что делай это осознанно.
Где скачать новые версии? Будут ли обновления?
Все релизы — на странице GitHub Releases. При пуше тега v* GitHub Actions собирает и публикует установщики под Windows x64, macOS (universal) и Linux x64, плюс headless tglock-cli под те же три платформы. Подпишись на репозиторий (кнопка Watch → Custom → Releases), чтобы получать уведомления.
🛠 Стек технологий
| Технология | Зачем |
|---|---|
| Rust | Один бинарник, нативная скорость, без runtime-зависимостей |
| Tauri 2 | Нативная оболочка для GUI. Опциональна: за фичей gui, в CLI не входит |
| TypeScript + Vite | Интерфейс, внутренняя навигация и строгая типизация |
| tokio | Async I/O, обработка сигналов для корректной остановки сервиса |
| tokio-tungstenite | WebSocket-клиент с TLS поверх native-tls |
| aes + ctr | Расшифровка MTProto obfuscated2 init-пакета |
| clap | Разбор аргументов tglock-cli |
Ядро (src/lib.rs: разбор MTProto, каскад маршрутов, прокси) не зависит ни от Tauri, ни от оконной системы — поэтому один и тот же код обслуживает и графический интерфейс, и headless-режим.
🏗 Сборка из исходников
git clone https://github.com/by-sonic/tglock.git
cd tglock
npm ci
npm run tauri build
Результат — target/release/tglock (или tglock.exe на Windows).
Минимальная версия Rust — 1.88 (rust-version в Cargo.toml, проверяется отдельной задачей в CI). На более старых тулчейнах зависимости не соберутся: часть из них требует edition 2024.
Только CLI, без графики
cargo build --release --locked --no-default-features --bin tglock-cli
Ни Node.js, ни фронтенда, ни libwebkit2gtk для этого не нужно — при выключенной фиче gui Tauri и системный WebView в сборку не попадают вообще. Именно так CLI собирается на голом сервере.
Проверки, которые гоняет CI
cargo fmt --check
cargo clippy --all-targets -- -D warnings
cargo clippy --no-default-features --lib --bins --all-targets -- -D warnings
cargo test --all-targets
cargo test --no-default-features --lib --bins
Тестов 59: разбор obfuscated2, каскад маршрутов и его cooldown, протокольные отказы SOCKS5, устойчивость секрета к перезапуску, плюс сквозной тест туннеля против мок-сервера, который реализует сторону Telegram и проверяет, что до неё доходит ровно тот открытый текст, который отправил клиент. Единственный тест с пометкой #[ignore] — тот, что требует живой сети.
Свой релиз через GitHub Actions
Форкни репозиторий и поставь тег v* — .github/workflows/release.yml соберёт установщики под Windows x64, macOS (universal, Apple Silicon + Intel) и Linux x64, а также tglock-cli под те же три платформы, и опубликует их в релизе.
🤝 Как помочь
Проект живой, PR и баг-репорты разбираются.
- Нашёл баг — открой issue. Полезнее всего: ОС и версия, что показывает вкладка диагностики (маршрут, DC, число сбоев) и провайдер. Для
tglock-cli— вывод из консоли. - Хочешь фичу — тоже issue. Если её нет в планах, так и будет написано, без месяцев тишины.
- Присылаешь PR — перед отправкой прогони проверки выше, они те же, что в CI. Небольшие PR ревьюятся быстрее.
- Не работает после релиза — это регрессия, пиши сразу, такие вещи в приоритете.
Известные ограничения, о которых не нужно открывать issue: звонки (UDP), сервисы кроме Telegram (только MTProto), Android и iOS (обсуждается в #9).
📄 Лицензия
MIT — делай что хочешь. Форки, модификации, использование в коммерческих проектах — всё разрешено. Ссылка на репозиторий приветствуется, но необязательна.
by sonic · Issues & feedback · Releases
