Представлен первый релиз новой стабильной ветки XMPP-сервера Prosody 0.11, в которой представлено более 2000 изменений. При разработке сервера основное внимание уделяется простоте установки и настройки, низкому потреблению ресурсов и лёгкости расширения функциональности. Код проекта написан на языке Lua и распространяется под лицензией MIT.

Наиболее значительные улучшения в новой ветке коснулись модулей MUC и pubsub, которые реализуют одни из самых крупных расширений (XEP) стандарта XMPP. Предыдущие версии сервера уже довольно давно поддерживали MUC и pubsub, но предлагаемая реализация была довольно сильно усложнена, не отвечала актуальному состоянию спецификаций и имела проблемы с масштабированием.

Основные изменения в Prosody 0.11:

Улучшена работа чата. Переписан практически весь код с реализацией расширения MUC (Multi-User Conference). Переработка позволила проекту упростить добавление новых функций и улучшить масштабируемость MUC-сервисов (новая версия модуля MUC позволила сервисам, таким как Jitsi Meet, обеспечить работу с сотнями тысяч общих бесед);

Переработаны конфигурационные диалоги, обеспечена более аккуратная компоновка настроек и использованы более понятные названия опций;

Добавлена поддержка архивирования и загрузки ранее написанных сообщений в MUC (Multi User Chat) с использованием протокола XEP-0313 (MAM). Например, при помощи данной возможности клиент может отображать сообщения, которые были написаны в общей беседе, когда пользователь не был в онлайн;

Обеспечена возможность резервирования имени пользователя, что позволяет предотвратить использование чужого имени, когда настоящий владелец не находятся в общей беседе. По умолчанию только владельцы / администраторы общих чатов могут осуществлять привязку имени при внесении пользователя в общую беседу. Модуль также предоставляет опцию, позволяющую пользователям самостоятельно регистрировать свои псевдонимы и становиться участниками;

Улучшена реализация pubsub. В частности, добавлен код, отвечающий за сохранность узлов и элементов. Данные теперь могут храниться на диске, а не в оперативной памяти, и не теряться при перезапуске сервера. Реализована поддержка конфигурирования узлов и управления принадлежностью, необходимых для расширенного контроля доступа. Также появилась поддержка «publish-options», которые позволяют клиентам безопасно публиковать элементы с надлежащим управлением доступом. Написан новый модуль mod_pep_plus, в который были добавлены возможности pubsub, появившиеся после 2009 года. Модуль обеспечивает поддержку OMEMO в разговорах при общении с пользователями, не находящимися в адресной книге. Он также позволяет пользователям использовать PEP для хранения закладок и других данных;

Осуществлён переход на новый формат vCard, определённый в спецификации XEP-0292. Новый формат также хранится в PEP, что позволяет использовать полноценные возможности управления доступом (например, можно выбрать, общедоступен ли vCard или доступен только для контактов). Поддержка старого протокола vcard-temp перемещена в модуль mod_vcard_legacy и оставлена для обеспечения совместимости со старыми клиентами;

В состав включены модули от сообщества, разработанные с целью увеличения времени автономной работы клиентов на мобильных устройствах. Клиенты, поддерживающие XEP-0352, такие как «Conversations», могут информировать сервер, когда приложение находится в фоновом режиме или экран телефона выключен. В ответ Prosody теперь может оптимизировать трафик, отключая отправку неважных данных. Например, может быть прекращена отправка постоянно передающихся по сети данных, таких как изменения статуса контакта и сообщения в чате, которые могут мешать переключению телефона в режим с низким энергопотреблением;

Проделано много работы над внутренним асинхронным API и повышением его надёжности. В состав включена экспериментальная поддержка асинхронных модулей аутентификации и хранения данных. В текущем выпуске новый API пока помечен как экспериментальный, но в дальнейшем он сможет использоваться для повышения производительности крупных публичных чат-серверов;

Увеличено число автоматизированных тестов. Если предыдущие выпуски почти полностью тестировались вручную, то теперь реализован большой набор автоматизированных тестов, запускаемых после каждого изменения;

Добавлен экспериментальный сетевой бэкенд на базе epoll. Новый бэкенд заметно меньше и проще реализации на базе libevent, но ограничен применением только в Linux.

Источник

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here