Мессенджер, который притворяется почтой: разбираем Delta Chat для Android
Представьте, что вам нужно запустить корпоративный или приватный мессенджер, но вы не хотите поднимать свои серверы, возиться с регистрацией по номеру телефона или доверять данные крупным корпорациям. Звучит как начало утопии про веб 3.0, но решение нашлось в технологии из восьмидесятых. Команда Delta Chat создала мессенджер, который работает поверх обычного протокола электронной почты.
В чем прикол?
Главная проблема современных чатов — это «огороженные сады». Чтобы написать кому-то в Telegram, у него должен быть Telegram. То же самое с WhatsApp или Signal. Delta Chat ломает эту логику. По сути, это почтовый клиент, который выглядит и ведет себя как мессенджер.
Если вы напишете сообщение через Delta Chat человеку, у которого он не установлен, он просто получит обычное письмо. Когда он ответит на это письмо из своего Gmail или Outlook, ответ придет вам прямо в чат. Это самая децентрализованная система из всех возможных, потому что она опирается на существующую инфраструктуру SMTP и IMAP.
Как это устроено внутри
Репозиторий deltachat-android — это нативный клиент для Android. Интересно, что проект не стали писать с нуля на чистом Kotlin, а пошли по пути переиспользования проверенных решений.
В 2019 году разработчики переехали с базы Telegram на UI-компоненты Signal. Это заметно по интерфейсу: он чистый, знакомый и не перегружен лишними свистелками. Сердце проекта — Chatmail Core Library, написанная на Rust. Это разумно: критические вещи вроде шифрования и обработки протоколов лучше держать в производительном и безопасном языке, а UI оставить нативной платформе.

Три фишки, которые меня зацепили
Автоматическое шифрование. Проект использует стандарт Autocrypt. Вам не нужно обмениваться ключами вручную или сканировать QR-коды при каждой встрече. Как только вы обменялись первыми сообщениями, клиент сам договаривается о сквозном шифровании (E2EE).
Никаких номеров телефонов. Регистрация привязана только к вашей почте. Для тех, кто параноидально относится к приватности или просто не хочет светить симку, это спасение. Можно использовать любой почтовый сервер, даже свой собственный на "малинке" под столом.
Интерактивные чат-приложения. Разработчики добавили поддержку так называемых "webxdc". Это небольшие приложения или игры внутри чата, которые не требуют интернета для работы, так как передаются как вложения. Можно вместе вести список покупок или играть в шахматы прямо в переписке.
Почему разработчикам стоит заглянуть в код
Проект живет на GitHub уже почти восемь лет, и за это время там накопилось много интересного:
- Стык Java/Kotlin и Rust через JNI. Если хотите посмотреть, как эффективно прокидывать данные между высокоуровневым UI и низкоуровневым движком, здесь отличные примеры.
- Реализация протокола IMAP для чатов. Почтовые протоколы не создавались для мгновенных сообщений, и то, как разработчики оптимизировали получение Push-уведомлений и синхронизацию, заслуживает отдельного изучения.
- Лицензия GPLv3+. Проект полностью открыт, и сообщество активно участвует в переводах и тестировании.
Есть ли подвох?
Конечно, не все так гладко. Скорость доставки сообщения в Delta Chat напрямую зависит от вашего почтового провайдера. Иногда письмо может «задуматься» на пару секунд, что для мессенджера кажется вечностью. Плюс, если ваш провайдер активно спамит или блокирует частые мелкие письма, опыт будет так себе.
Кому это пригодится
Delta Chat идеально подойдет, если вам нужно организовать общение в закрытой группе, где у всех уже есть корпоративная почта, и вы не хотите внедрять Slack или Mattermost. Также это отличный «запасной аэродром» на случай блокировок централизованных сервисов — почту заблокировать гораздо сложнее, не сломав при этом половину интернета.
Если хотите поучаствовать в развитии или собрать свою версию клиента, инструкции в BUILDING.md довольно подробные. Проект написан в основном на Java, но постепенно обрастает Kotlin-кодом, так что порог входа для Android-разработчика комфортный.