Блог Игоря 'delitrem' Горячева

Бортовой самописец одного городского сумасшедшего...

matrix -- новый jabber?

17 августа 2016 - 3 мин. на прочтение - мессенджеры

Когда я впервые увидел упоминание о новом децентрализованном мессенджере Matrix, работающим по принципу межсерверной федерации (самые близкие примеры: SMTP и XMPP), я не придал этому особого значения, хотя на тот момент времени я уже отказался от использования джаббера для личных коммуникаций, перестал верить в World Domination Plan™ и отправил в вечный down свой собственный XMPP-сервер. И… забыл о его существовании на какое-то время. Но потом, вероятно, через полгода-год опять увидел новость на HN и решил познакомиться с новой технологией поближе.

Ещё на этапе прочтения описания на основном сайте Matrix я пришёл к однозначному выводу, что данный мессенджер позиционируется как пришедший на замену морально устаревшему XMPP. При этом предполагается, что новый протокол лишён большинства архитектурных изъянов, присущих джабберу. Построен он на обычном REST-образном API, что выгодно выделяет его на фоне поточного диалекта XML, который крутится внутри джаббера. Он реально простой и понятный, с ним теоретически можно работать хоть из консоли с помощью того же curl’а.

Основная фишка матрикса – протоколирование истории сообщений прямо “из коробки”, а ещё конечно же поддержка реально работающего VoIP, чем не может в общем случае похвастаться ни джаббер, ни тот же набивший оскомину Telegram! Соответственно, данная первоклассная (1-st class citizen) фича записи истории попутно убивает ещё одного зайца – во много раз уменьшается шанс потери сообщений, недостатка свойственного джабберу. Как бы это сурово не звучало, но этот косяк потенциально существовал во все времена моей тесной работы с данной технологией, причём независимо от используемого софта. Как сейчас – не знаю, но почему-то нет уверенности в том, что это уже как-либо исправлено. Ведь, вместо исправления явных архитектурных недостатков клепались никому не нужные и не поддерживаемые XEP’ы, запросы на решение проблем попросту игнорировались.

Официальный сайт матрикса кроме рекомендуемых клиентских и серверных решений предлагает к скачиванию ещё и референсные реализации SDK для мобильных платформ, таких, как Android и iOS. Кстати, в отличие от опробованных мной джаббер-клиентов под Android клиент матрикса Vector не сильно “ест батарейку”, по крайней мере ничуть не больше, чем остальные установленные приложения.

Конференции поддерживаются, примерно также, как и в других мессенджерах. Есть возможность двустороннего гейтования в различные инородные сети начиная с IRC и заканчивая тем же джаббером. Всё есть. Также есть и всевозможные вспомогательные боты, куда же без них…

Всё ли так лучезарно в матриксе? Три момента, которые лично меня настораживают – это невнятный статус поддержки ростера (контакт-листа), непонятки с e2e-шифрованием и явная сырость спецификации. Но уверен, что рано или поздно все эти три проблемы будут решены.

Резюме таково. Технология матрикс вполне имеет право на существование, она живая, по крайней мере не топчется на одном месте, постоянно развивается. И это не может не радовать, т.к. особых альтернатив-то и нет, если не брать во внимание полудохлый джаббер, взлёт которого был в середине прошлого десятилетия, и популярность которого, к сожалению, уже сходит на нет.

Что касается софта. На данном этапе имеется референсный сервер под названием Synapse, рекомендуемый сообществом к использованию. Он написан на питоне, но уже переписывается на более серьёзном языке программирования Go. Есть вагон и маленькая тележка клиентов под разные платформы и вкусовые предпочтения, включая GNU Emacs. Можно пользоваться!

Да, и добро пожаловать в нашу русскоязычную конференцию #ru.matrix:matrix.org!