Инструменты11 октября 2026 г., 21:45 МСК🤖 Auto

GoyGram: Telegram-фреймворк на Rust с поддержкой Bot API и MTProto

Новый Python-фреймворк GoyGram объединяет Bot API и MTProto в одном процессе, используя криптографическое ядро на Rust для максимальной скорости и безопасности.

Баннер новости 9423

Единая среда для ботов и юзерботов

GoyGram — это асинхронный фреймворк для Telegram, который позволяет запускать ботов (через Bot API) и юзерботов (через MTProto) в одном процессе Python. Ключевое отличие от аналогов (Telethon, Pyrogram, aiogram) — использование Rust для критически важных частей: шифрования AES и кодирования TL-схем. Это устраняет необходимость в отдельных C-расширениях, так как криптографическое ядро компилируется прямо в пакет.

Разработчики подчеркивают, что все методы Bot API доступны сразу в формате snake_case или camelCase без необходимости генерации обертков. Новые методы Telegram будут работать автоматически, без обновления самой библиотеки.

Производительность и бенчмарки

Основной упор сделан на скорость запуска и низкое потребление памяти. Благодаря отсутствию тяжелых зависимостей и оптимизированному Rust-ядру, GoyGram демонстрирует впечатляющие результаты по сравнению с популярными альтернативами. Шифрование пакетов MTProto (AES-256-IGE) работает на скорости, близкой к нативным C-библиотекам, используя аппаратные инструкции процессора (AES-NI на x86, ARMv8 crypto на ARM).

Метрика GoyGram Telethon Pyrogram aiogram python-telegram-bot
Холодный импорт (мс) 77.2 342.0 461.5 3016.3 142.8
Дельта RSS (МБ) 10.8 48.4 35.6 152.2 18.8
AES-256-IGE (МБ/с, 64 KiB) 1062.5 10.8 202.4 — —
Загрузка message (ops/s) 577,821 — — — —
Загрузка updateNewMessage (ops/s) 225,347 — — — —

Безопасность и управление сессиями

В GoyGram реализована концепция единого объекта сессии, который объединяет in-memory состояние, зашифрованный файл (.vault) и портативную строку. Шифрование файла сессии происходит с помощью AES-256-GCM. Ключ шифрования генерируется из PBKDF2-SHA256 с 600,000 раундами на основе идентификатора машины. При завершении работы память очищается (zeroized), а неверный ключ вызывает ошибку, а не падает в незашифрованный режим.

Требования и установка

Фреймворк требует Python 3.13 или новее. Предварительно собранные wheels доступны для Linux, Windows, macOS и Android (Termux). Для сборки из исходников необходим Rust. Зависимости минимальны: aiohttp, rich, qrcode.

  • Установка: pip install goygram
  • Лицензия: GNU Affero General Public License v3.0 (AGPLv3)
  • Документация: Доступна на сайте проекта и в репозитории GitHub.

Источник: Github ↗