Представлен открытый проект Opengram — сервер для протокола Telegram

от автора

Команда энтузиастов представила открытый проект под названием Opengram. Это решение является реализацией серверной части мессенджера Telegram. Проект представляет собой самостоятельный сервер, реализующий протокол MTProto (поддерживается layer до 216), который может использоваться для замены официальной серверной инфраструктуры Telegram при развёртывании на собственном оборудовании. Исходный код проекта написан на языке C# (.NET 9) и опубликован на GitHub без указания лицензии.

В рамках решения Opengram поддерживаются официальные клиенты Telegram (Telegram Desktop, мобильные приложения) после изменения в них адреса дата-центра и публичного RSA-ключа сервера.

Opengram является форком проекта mytelegram. Изначальный проект mytelegram поставляется под лицензией Apache 2.0, которая в соответствии с пунктом 4a требует включения копии текста лицензии при распространении производных работ.

Сервер Opengram построен на наборе микросервисов, запускаемых через Docker Compose: шлюз MTProto-подключений, сервер авторизации и обмена ключами, сервер сессий, серверы команд и запросов (архитектура CQRS), HTTP Bot API, служебный API администрирования, серверы хранения и раздачи файлов, TURN/STUN для звонков и сервис отправки кодов подтверждения. В качестве инфраструктуры используются MongoDB , Redis, RabbitMQ и MinIO.

Из поддерживаемых возможностей Opengram моэн//жно выделить: личные чаты, группы, супергруппы и каналы, секретные (end-to-end) чаты, голосовые и видеозвонки (через TURN/STUN и SFU mediasoup), боты и Bot API, настройки приватности и двухфакторная аутентификация, стикеры, реакции и кастомные эмодзи; звёзды (Stars) и подарки (Star Gifts), включая перепродажу и апгрейд; истории (Stories), темы оформления и обои; запланированные и самоудаляющиеся сообщения.

ссылка на оригинал статьи https://habr.com/ru/articles/1044484/