Die erste Version des 0.11. Stabilen XMPP- Zweigs des Prosody-Servers mit Korrekturen von mehr als 2000 Fehlern wurde eingeführt.
Wichtige Änderungen
Die wichtigsten Verbesserungen betrafen die MUC- und Pubsub-Module.
Zusammen implementieren diese Komponenten zwei der umfangreichsten XEP-Erweiterungen des XMPP-Standards, die das Protokoll derzeit bereitstellt. Obwohl die vorherigen Versionen MUC und pubsub schon seit geraumer Zeit unterstützen, sind beide recht kompliziert. Nach der ersten Implementierung wurde klar, dass der Code aktualisiert und umgestaltet werden musste, um die Abdeckung der erforderlichen XEP-Funktionalität zu erhöhen, die Codestruktur und Skalierbarkeit der Lösungen zu verbessern.
Außerdem wurden viele andere Änderungen, Verbesserungen, Fehlerbehebungen und Leistungsarbeiten vorgenommen, die in dieser Version enthalten waren.
Chat-Verbesserungen
Bei den meisten Änderungen in dieser Version ging es darum, fast den gesamten Code für die MUC (Multi-User Conference) neu zu schreiben. Dieses ehrgeizige Projekt wurde vor einigen Jahren vom Benutzer daurnimator gestartet , der den größten Teil des neuen Codes entwickelt hat.
Obwohl die wichtigsten Änderungen intern sind, konnte das Projekt auf einfache Weise neue Funktionen hinzufügen und die Skalierbarkeit von MUC-Diensten verbessern (diese Version des MUC-Moduls ermöglicht es vielen Diensten, mit Hunderttausenden gängiger Konversationen wie Jitsi Meet zu arbeiten ).
Erweiterte Konfiguration
Das Serverkonfigurationsformular wurde aktualisiert, um ein übersichtlicheres Layout und bequemere Parameternamen bereitzustellen.

Nachrichtenarchivierung
Unterstützung für das Archivieren und Laden zuvor geschriebener Nachrichten in MUC (Multi User Chat) unter Verwendung des XEP-0313-Protokolls (MAM) wurde hinzugefügt. Auf diese Weise kann der Client beispielsweise Nachrichten anzeigen, die in einer allgemeinen Konversation geschrieben wurden, als der Benutzer online abwesend war.
Reservierung des Benutzernamens
Um Verwirrung zu vermeiden, kann Prosody jetzt die Reservierung von Benutzernamen anwenden. Dies verhindert die Verwendung des Namens einer anderen Person, wenn sich der tatsächliche Eigentümer nicht in einem gemeinsamen Gespräch befindet. Standardmäßig können nur Eigentümer / Administratoren von freigegebenen Chats einen Namen neu zuweisen (wenn ein Benutzer zu einer freigegebenen Konversation hinzugefügt wird). Das Modul kann jedoch auch so konfiguriert werden, dass Benutzer ihre eigenen Aliase registrieren und Teilnehmer werden können.
Pubsub-Protokoll
Die Pubsub-Implementierung wurde in dieser Version erheblich verbessert. Link Mauve hat einen Code hinzugefügt, der für die Sicherheit von Knoten und Elementen verantwortlich ist. Jetzt können Daten auf der Festplatte und nicht im RAM gespeichert werden und gehen beim Neustart des Servers nicht verloren.
Es wurde auch Unterstützung für die Konfiguration, Knoten und Eigentümerverwaltung eingeführt, die für eine erweiterte Zugriffskontrolle erforderlich sind, und schließlich Unterstützung für die berüchtigten Veröffentlichungsoptionen, mit denen Kunden Elemente mit ordnungsgemäßer Zugriffskontrolle sicher veröffentlichen können.
Pep
Der alte PEP-Code ist eine separate, eingeschränkte Pubsub-Implementierung, die alle Benutzer implementiert hat, die 2009 benötigt wurden. Im Laufe der Jahre waren jedoch immer mehr Pubsub-Funktionen in PEP aufgrund ihrer großen Relevanz gefragt. Daher stellte sich heraus, dass PEP alle Pubsub-Funktionen hinzufügen und den vorhandenen Code verwenden musste.
Florian Zeitz begann diese Arbeit mit der Erstellung eines neuen Moduls "mod_pep_plus". Dieses Modul hat jetzt das ursprüngliche "mod_pep" ersetzt und ist bereits die Standard-PEP-Implementierung.
Dies bietet OMEMO-Unterstützung bei der Kommunikation mit Benutzern, die nicht im Adressbuch enthalten sind, in Gesprächen und anderen Clients. Außerdem können Benutzer PEP zum Speichern von Lesezeichen und anderen Daten verwenden.
Diese Version bietet Unterstützung für die neue Version in der in XEP-0292 beschriebenen vCard-Spezifikation, die Unterstützung für verschiedene neue Funktionen enthält.
Das neue Format wird auch in PEP gespeichert und bietet vollständigen Zugriffszugriffszugriff (Sie können beispielsweise auswählen, ob Ihre vCard geöffnet oder nur für Kontakte verfügbar ist).
Derzeit unterstützen nur wenige (falls vorhanden) Clients vCard4, aber das alte vcard-temp-Protokoll wird weiterhin mit mod_vcard_legacy unterstützt, das transparent in das neue Format konvertiert wird, bis die Clients aktualisiert werden.
Optimierung des mobilen Akkus
In dieser Version werden einige Community-Module vorgestellt, mit denen die Akkulaufzeit von Mobile Messenger-Clients verlängert werden soll. Datenverkehr, der ständig über das Netzwerk übertragen wird, z. B. Änderungen des Kontaktstatus und Chat-Nachrichten, kann verhindern, dass das Telefon in den Energiesparmodus wechselt. Diese Daten sind jedoch normalerweise unwichtig, insbesondere wenn der Telefonbildschirm ausgeschaltet ist oder sich die Anwendung im Hintergrund befindet.
Clients, die XEP-0352 unterstützen, z. B. Conversations, können den Server informieren, wenn sich die Anwendung im Hintergrund befindet, und Prosody optimiert den Verbindungsverkehr entsprechend.
Diese Funktion ist im Modul mod_csi_simple implementiert.
Interne Änderungen
Asynchrone APIs
An der internen asynchronen API wurde viel Arbeit geleistet, wodurch ihre Zuverlässigkeit dank der hinzugefügten Tests erhöht wurde. Letztendlich wird diese API verwendet, um die Leistung großer öffentlicher Chat-Server zu verbessern.
Mit diesen Änderungen bietet die aktuelle Version experimentelle Unterstützung für asynchrone Authentifizierungs- und Datenspeichermodule. In dieser Version wird die neue API jedoch nicht offiziell unterstützt, da für zukünftige Versionen größere Änderungen geplant sind.
Automatisierte Tests
Eine der größten Verbesserungen des Projekts in den letzten Jahren war die Zunahme der Anzahl automatischer Tests. Frühere Versionen wurden fast vollständig manuell getestet, wobei nur sehr wenige automatisierte Tests verfügbar waren. Jetzt gibt es eine große Anzahl von Tests, die nach jeder Änderung ausgeführt werden.
Native Epoll-Unterstützung
Dieser neue experimentelle Netzwerkserver bietet eine Alternative zu libevent. Die Hauptvorteile sind die geringe Größe der Implementierung und die einfache Bedienung, während die Funktion die außergewöhnliche Unterstützung in Linux-Systemen ist.
Quelle