Se introdujo la primera versión de la rama XMPP estable 0.11 del servidor Prosody con correcciones de más de 2000 errores.
Cambios importantes
Las mejoras más significativas se dieron en los módulos MUC y pubsub.
Juntos, estos componentes implementan dos de las extensiones XEP más extensas al estándar XMPP que el protocolo proporciona actualmente. Aunque las versiones anteriores habían soportado MUC y pubsub durante bastante tiempo, ambas son bastante complicadas, y después de la implementación inicial quedó claro que era necesario actualizar y refactorizar el código para aumentar la cobertura de la funcionalidad XEP requerida, mejorar la estructura del código y la escalabilidad de las soluciones.
Además, se realizaron muchos otros cambios, mejoras, correcciones de errores y trabajo de rendimiento que se incluyeron en esta versión.
Mejoras de chat
La mayoría de los cambios en esta versión fueron sobre la reescritura de casi todo el código para la MUC (Multi-User Conference). Este ambicioso proyecto fue lanzado hace unos años por el usuario daurnimator , quien desarrolló la mayor parte del nuevo código.
Aunque los cambios más significativos son internos, esto permitió que el proyecto agregara más fácilmente nuevas funciones y mejorara la escalabilidad de los servicios de MUC (esta versión del módulo de MUC permite que muchos servicios funcionen con cientos de miles de conversaciones comunes, como Jitsi Meet ).
Configuración mejorada
El formulario de configuración del servidor se ha actualizado para proporcionar un diseño más ordenado y nombres de parámetros más convenientes.

Archivado de mensajes
Se agregó soporte para archivar y cargar mensajes escritos previamente en MUC (Multi User Chat) usando el protocolo XEP-0313 (MAM). Esto permite que el cliente muestre mensajes, por ejemplo, que se escribieron en una conversación general cuando el usuario estuvo ausente en línea.
Reserva de nombre de usuario
Para evitar confusiones, Prosody ahora puede aplicar la reserva de nombre de usuario. Esto evita el uso del nombre de otra persona cuando el verdadero propietario no está en una conversación común. De forma predeterminada, solo los propietarios / administradores de chats compartidos pueden reasignar un nombre (al agregar un usuario a una conversación compartida), pero el módulo también se puede configurar para que los usuarios puedan registrar sus propios alias y convertirse en participantes.
Protocolo Pubsub
La implementación de Pubsub se ha mejorado significativamente en esta versión. Link Mauve agregó un código responsable de la seguridad de los nodos y elementos, ahora los datos se pueden almacenar en el disco, no en la RAM, y no se pierden cuando se reinicia el servidor.
También se introdujo el soporte para la configuración, los nodos y la administración de propiedad necesarios para el control de acceso avanzado, y finalmente el soporte para las infames opciones de publicación, que permiten a los clientes publicar elementos de forma segura con el control de acceso adecuado.
Pep
El antiguo código PEP es una implementación de pubsub limitada separada que implementó todo lo que los usuarios necesitaban en 2009. Sin embargo, a lo largo de los años, cada vez se han solicitado más funciones de pubsub en PEP, debido a su gran relevancia. Por lo tanto, se hizo evidente que PEP necesitaba agregar todas las funciones de pubsub y usar el código existente.
Florian Zeitz comenzó este trabajo creando un nuevo módulo "mod_pep_plus". Este módulo ahora ha reemplazado el "mod_pep" original y ya es la implementación PEP predeterminada.
Esto proporciona soporte OMEMO cuando se comunica con usuarios que no están en la libreta de direcciones, en conversaciones y otros clientes. También permite a los usuarios usar PEP para almacenar marcadores y otros datos.
Esta versión proporciona soporte para la nueva versión en la especificación vCard descrita en XEP-0292, que incluye soporte para varias características nuevas.
El nuevo formato también se almacena en PEP, proporcionando acceso de control de acceso completo (por ejemplo, puede elegir si su vCard está abierta o disponible solo para contactos).
Pocos (si los hay) clientes actualmente admiten vCard4, pero el antiguo protocolo vcard-temp todavía es compatible con mod_vcard_legacy, que se convierte de forma transparente al nuevo formato hasta que se actualizan los clientes.
Optimización de la batería del móvil.
Esta versión presenta algunos módulos comunitarios diseñados para aumentar la duración de la batería de los clientes de mensajería móvil. El tráfico que se transmite constantemente a través de la red, como los cambios en el estado del contacto y los mensajes de chat, puede evitar que el teléfono cambie al modo de bajo consumo. Sin embargo, estos datos generalmente no son importantes, especialmente cuando la pantalla del teléfono está apagada o la aplicación está en segundo plano.
Los clientes que admiten XEP-0352, como Conversaciones, pueden informar al servidor cuando la aplicación está en segundo plano, y Prosody optimiza el tráfico de conexión en consecuencia.
Esta función se implementa en el módulo mod_csi_simple.
Cambios internos
API asincrónicas
Se ha realizado mucho trabajo en la API asincrónica interna, aumentando su confiabilidad gracias a las pruebas adicionales. En última instancia, esta API se utilizará para mejorar el rendimiento de los grandes servidores de chat públicos.
Con estos cambios, la versión actual tiene soporte experimental para autenticación asincrónica y módulos de almacenamiento de datos. Sin embargo, en esta versión, la nueva API no es oficialmente compatible, ya que se planean cambios importantes para futuras versiones.
Pruebas automatizadas
Una de las mayores mejoras en el proyecto en los últimos años ha sido el aumento en el número de pruebas automáticas. Las versiones anteriores se probaron casi completamente de forma manual, con muy pocas pruebas automatizadas disponibles. Ahora hay un gran conjunto de pruebas que se ejecutan después de cada cambio.
Soporte epoll nativo
Este nuevo servidor de red experimental ofrece una alternativa a libevent. Las principales ventajas son el pequeño tamaño de la implementación y la facilidad de uso, mientras que la característica es su soporte excepcional en sistemas Linux.
Fuente