Единая среда для ботов и юзерботов
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 ↗
