Matrix (протокол)
Matrix — це відкритий протокол для спілкування у реальному часі. Основною метою створення є досягнення високої інтероперабельності, подібної до стандартних протоколів типу SMTP. З технічної точки зору — це протокол прикладного рівня, федеративного типу, що дозволяє обмінюватися повідомленнями у реальному часі між окремими серверами.[1][2]
Повідомлення у JSON форматі поширюються серед федерації публічних серверів. Протокол також інтегрується з вебсервісами за допомогою WebRTC та забезпечує можливість здійснення відео-дзвінка, VoIP та онлайн чату.
Подібними ініціативами є протоколи XMPP та IRCv3.[3]
Розробка[ред. | ред. код]
Основне коло розробників працює у неприбутковій організації Matrix.org, що базується у Великій Британії.[4] Метою організації є створення відкритого, децентралізованого, стійкого протоколу з високою інтероперабельністю для комунікації у інтернеті. Типове застосування: відеотелефонія, VoIP, швидкий обмін повідомленнями, IoT, синхронізація даних.
Огляд[ред. | ред. код]
Платформа для організації децентралізованих комунікацій Matrix розвивається як проект, який використовує відкриті стандарти і приділяє велику увагу забезпеченню безпеки і приватності користувачів. В якості транспорту застосовується HTTPS+JSON з можливістю використання WebSockets або протоколу на базі CoAP + Noise. Система формується як співдружність серверів, які можуть взаємодіяти між собою і об'єднуються у загальну децентралізовану мережу. Повідомлення реплікуються по всіх серверів, до яких підключені учасники обміну повідомленнями. Повідомлення поширюються по серверам по аналогії з тим, як коміти поширюються між Git-репозиторіями. У разі тимчасового відключення сервера повідомлення не втрачаються, а передаються користувачам після відновлення роботи сервера. Підтримуються різні варіанти ідентифікаторів користувача, включаючи email, номер телефону, обліковий запис в Facebook тощо.
У мережі відсутня єдина точка відмови або контролю за повідомленнями. Всі сервери, які охоплює обговорення, рівноправні між собою. Будь-який користувач може запустити власний сервер і підключити його до загальної мережі. Можливе створення шлюзів для взаємодії Matrix з системами на базі інших протоколів, наприклад, підготовлені сервіси для двосторонньої відправки повідомлень в IRC, Facebook, Telegram, Skype, Hangouts, Email, WhatsApp і Slack.
Крім миттєвого обміну текстовими повідомленнями і організації чатів, система може використовуватися для передачі файлів, відправки повідомлень, організації телеконференцій, здійснення голосових і відео-дзвінків. Matrix дозволяє використовувати пошук і необмежений перегляд історії листування. Підтримуються також такі розширені можливості як повідомлення про набір тексту, оцінка присутності користувача в онлайн, підтвердження прочитання, push-повідомлення, пошук на стороні сервера, синхронізація історії та стану клієнтів.
Протокол[ред. | ред. код]
Специфікація Matrix окреслює RESTful HTTP APIs для захищеної передачі та реплікації даних формату JSON між сумісними серверами, клієнтами та сервісами. Дані підписані у стилі git для усунення можливості підміни. Механізм реплікації відповідає моделі узгодженості в кінцевому рахунку, що дозволяє відновити повідомлення через повторну синхронізацію з інших серверів.
Клієнти[ред. | ред. код]
Riot.im офіційний клієнт, є зразком для інших втілень. Для середовищ GNOME є офіційний клієнт Fractal. Також існує багато інших клієнтів, ботів, мостів, серверів та інших реалізацій протоколу Matrix.
Посилання[ред. | ред. код]
- Офіційний вебсайт Архівовано 26 січня 2021 у Wayback Machine.
- Список клієнтів Matrix Архівовано 28 травня 2018 у Wayback Machine.
- Еталонний сервер Synapse Архівовано 6 серпня 2018 у Wayback Machine.
- Сховище коду на GitHub Архівовано 8 грудня 2018 у Wayback Machine.
- Специфікація протоколу Matrix Архівовано 31 січня 2021 у Wayback Machine.
Примітки[ред. | ред. код]
- ↑ Matrix: a new specification for federated realtime chat [LWN.net]. lwn.net. Архів оригіналу за 5 травня 2018. Процитовано 27 травня 2018.
- ↑ Matrix.org Reloads Inside "Illusion of Control" Vortex. Dr. Dobb's. Архів оригіналу за 29 березня 2019. Процитовано 27 травня 2018.
- ↑ Weinberger, Matt. Matrix wants to smash the walled gardens of messaging. ITworld (англ.). Архів оригіналу за 5 травня 2018. Процитовано 27 травня 2018.
- ↑ Matrix | Crunchbase. Crunchbase (англ.). Архів оригіналу за 31 липня 2018. Процитовано 27 травня 2018.