Выпуск Dendrite 0.1.0, коммуникационного сервера с реализацией протокола Matrix

Oпубликoвaн молния Matrix-сeрвeрa Dendrite 0.1.0, кoтoрый oзнaмeнoвaл пeрexoд рaзрaбoтки нa стaдию бeтa-тeстирoвaния. Dendrite рaзвивaeтся oснoвнoй кoмaндoй рaзрaбoтчикoв дeцeнтрaлизoвaннoй кoммуникaциoннoй плaтфoрмы Matrix и пoзициoнируeтся кaк рeaлизaция втoрoгo пoкoлeния сeрвeрныx кoмпoнeнтoв Matrix. В oтличиe oт этaлoннoгo сeрвeрa Synapse, нaписaннoгo нa языке Python, адрес Dendrite развивается на языке Go. Обе официальные реализации распространяются почти лицензией Apache 2.0. В рамках проекта Ruma порознь развивается вариант сервера Matrix получай языке Rust, который распространяется подо лицензией MIT. Новый сервер нацелен в достижение высокой эффективности, надёжности и масштабируемости. Dendrite опережает Synapse по мнению производительности, требует для своей работы вопрос жизни и смерти меньше памяти и может масштабироваться вследствие балансировку нагрузки на несколько узлов. Застывшая музыка Dendrite поддерживает горизонтальное масштабирование и основывается возьми разделении обработчиков в форме микросервисов, идеже каждый экземпляр микросервиса имеет домашние таблицы в БД. Диспетчеризацией обращения к микросервисам занимается балансировщик нагрузки. Dendrite поддерживает работу в двух режимах - монолитном и многокомпонентном (polylith). В монолитном режиме до сей поры микросервисы скомпонованы в одном исполняемом файле, выполняются в одном процессе и взаимодействуют среди собой напрямую. В многокомпонентном (кластерном) режиме микросервисы могут запускаться сообразно-отдельности, в том числе с разнесением объединение разным узлам. Взаимодействие компонентов в многокомпонентном режиме осуществляется около помощи внутреннего HTTP API и платформы Apache Kafka. Работа ведётся на основе спецификаций протокола Matrix и с использованием двух тестовых наборов - общих с Synapse тестов sytest и нового набора Complement. В текущем этапе развития Dendrite успешно проходит 56% тестов Client-Server API и 77% тестов Federation API, близ этом фактический охват функциональности оценивается в 70% чтобы Client-Server API и 95% для Federation API. Страница бета-тестирования свидетельствует о готовности Dendrite интересах начального внедрения и переходе к разработке с периодическим формированием новых выпусков. Изменения, нарушающие обратную противоречие, меняющие структуру БД или требующие правки конфигурации, будут предлагаться только лишь в значительных выпусках. Dendrite пока рекомендуется пустить в дело в монолитном режиме совместно с СУБД PostgreSQL для того создания небольших исходных серверов (homeserver) и P2P-узлов. Утилизация SQLite пока не рекомендуется с-за нерешённых проблем с обработкой одновременных операций. С пока не реализованных в Dendrite возможностей отмечаются подтверждения получения сообщений, метки о прочтении, push-уведомления, OpenID, соотнесение к email, поиск на стороне сервера, номенклатура пользователей, списки игнорирования пользователей, образование групп и сообществ, оценка присутствия пользователя в online, гостевые входы, связь со сторонними сетями. Доступны в целях использования базовая функциональность для работы чат-комнат (образование, инвайты, правила аутентификации), средства федерации участников в комнатах, синхронизирование событий после возвращения из offline, учётные журнал, профили, индикация набора, загрузка и коэффициент полезного действия файлов (Media API), редактирование сообщений, ACL, прикрепление тегов и работа со списками устройств и ключей угоду кому) сквозного шифрования. Система формируется в духе содружество серверов, которые могут взаимодействовать в обществе собой и объединяются в общую децентрализованную паутина. Сообщения распространяются по серверам до аналогии с тем, как коммиты распространяются посереди Git-репозиториями. В случае временного отключения сервера сведения не теряются, а передаются пользователям чрез (год) возобновления работы сервера. Поддерживаются отличаются как небо и земля варианты идентификаторов пользователя, включая email, номерок телефона, учётную запись в Facebook и т.п. В погоняй отсутствует единая точка отказа иль контроля за сообщениями. Все серверы, которые содержит обсуждение, равноправны между собой. Какой угодно пользователь может запустить собственный сервер и включить его к общей сети. Возможно изделие шлюзов для взаимодействия Matrix с системами получай базе других протоколов, например, подготовлены сервисы в целях двусторонней отправки сообщений в IRC, Facebook, Telegram, Skype, Hangouts, Email, WhatsApp и Slack. Вдобавок мгновенного обмена текстовыми сообщениями и организации чатов, компания может использоваться для передачи файлов, отправки уведомлений, организации телеконференций, совершения голосовых и видео звонков. Поддерживаются как и такие расширенные возможности как предупреждение о наборе текста, оценка присутствия пользователя в online, доказательство прочтения, push-уведомления, поиск держи стороне сервера, синхронизация истории и состояния клиентов. Гнездо: http://www.opennet.ru/opennews/art.shtml?num=53869