Pheme: от простого пуша до федеративного мессенджера с E2E-шифрованием и голосовыми звонками
Pheme — это не просто очередной мессенджер, а результат эволюции пет-проекта, который начинался как простой релей для отправки push-уведомлений с сайта. Сегодня он поддерживает сквозное шифрование, голосовые звонки, федерацию и синхронизацию между устройствами. Разработчик создал его для решения соб

Pheme — это не просто очередной мессенджер, а результат эволюции пет-проекта, который начинался как простой релей для отправки push-уведомлений с сайта. Сегодня он поддерживает сквозное шифрование, голосовые звонки, федерацию и синхронизацию между устройствами. Разработчик создал его для решения собственной задачи — получать уведомления о событиях на сайте, но со временем проект оброс функционалом полноценного коммуникационного инструмента. В этой статье мы разберём, как развивался Pheme, какие технические решения лежат в его основе и почему он может стать альтернативой популярным мессенджерам.
Как пет-проект стал мессенджером
Всё началось с бытовой задачи: сайту нужно было отправлять разработчику важные уведомления — об оплате заказа, заполнении диска, ответе от банка. Так родилась идея сервиса, который принимает HTTP-запрос от сайта и мгновенно доставляет пуш на все устройства пользователя. Прототип был готов за несколько дней, но вскоре выяснилось, что одним релеем не обойтись.
По мере использования автор добавлял новые возможности: управление устройствами, историю сообщений, ленту, комментарии. Затем — шифрование, звонки и федерацию. В результате проект перерос из утилиты для уведомлений в полноценный федеративный мессенджер с открытым исходным кодом.
Предыстория и контекст
Идея Pheme не нова: существует множество сервисов для отправки уведомлений, таких как Pushover, Gotify или ntfy. Однако большинство из них либо проприетарны, либо не предлагают сквозного шифрования, либо не поддерживают голосовые звонки. Автор Pheme решил создать альтернативу, которая сочетала бы простоту интеграции с продвинутыми функциями мессенджера.
Федеративный подход — ещё одна ключевая особенность. В отличие от централизованных решений, Pheme позволяет пользователям запускать собственные серверы и обмениваться сообщениями между разными инстансами. Это напоминает архитектуру Matrix или XMPP, но с фокусом на лёгкость и минимализм.
Как работает сквозное шифрование в Pheme?
Для обеспечения конфиденциальности Pheme использует сквозное шифрование (E2EE) на основе протокола Signal. Ключи шифрования генерируются на устройстве пользователя и никогда не передаются серверу. При отправке сообщения оно шифруется на стороне отправителя и расшифровывается только на устройстве получателя. Сервер не имеет доступа к содержимому.
Поддержка нескольких устройств реализована через синхронизацию ключей: при добавлении нового устройства старые сообщения могут быть расшифрованы только на нём, если они были отправлены после его регистрации. Для голосовых звонков используется WebRTC с шифрованием DTLS-SRTP.
Технические детали реализации
Pheme написан на Go — это обеспечивает высокую производительность и лёгкость развёртывания. Серверная часть использует PostgreSQL для хранения метаданных и Redis для очередей сообщений. Для федерации применяется протокол на основе WebSocket с JSON-пакетами, что упрощает реализацию клиентов.
Клиентские приложения доступны для Android (Kotlin), iOS (Swift) и веба (React). Голосовые звонки реализованы через WebRTC с использованием Pion (Go) на серверной стороне для ретрансляции. E2E-шифрование для сообщений и звонков использует библиотеку Signal Protocol.
Проект полностью открыт: исходный код опубликован на GitHub под лицензией AGPLv3. Это позволяет сообществу проверять безопасность и вносить изменения.
Кого затронет и как
Pheme в первую очередь интересен разработчикам, которые хотят интегрировать уведомления в свои проекты без привязки к проприетарным сервисам. Благодаря федерации, продукт подходит для компаний, которым нужен приватный корпоративный мессенджер с контролем над данными.
Для обычных пользователей Pheme — это альтернатива Telegram или Signal с возможностью запустить свой сервер. Однако текущая аудитория проекта невелика, и для массового принятия потребуется удобный хостинг или готовые сборки.
В России и СНГ, где вопросы конфиденциальности и независимости от зарубежных платформ стоят остро, Pheme может стать востребованным решением для команд и сообществ, ценящих приватность.
Что будет дальше
Автор планирует добавить поддержку групповых чатов с E2EE, расширенное модерационное API и улучшить клиент для настольных платформ (Electron или Tauri). В долгосрочной перспективе — интеграция с ActivityPub для кросс-протокольной федерации.
Проект активно развивается, и сообщество приглашается к участию: тестированию, написанию клиентов и предложению идей. Выход стабильной версии ожидается в ближайшие месяцы.
Итог
Pheme — пример того, как пет-проект может перерасти в функциональный продукт, способный конкурировать с коммерческими мессенджерами. Благодаря открытому коду, федерации и сквозному шифрованию, он предлагает достойную альтернативу для тех, кто ценит приватность и контроль над данными. Следить за развитием стоит всем, кто интересуется децентрализованными коммуникациями.