Prosodical Thoughts

News, announcements and thoughts from the Prosody IM team

Prosody 0.11.0 veröffentlicht

by The Prosody Team
Translated by Robert Scheck, Georg Lukas
Translations available: [es]  [en]  [ru]  [fr] 
Tags: release

Wir freuen uns, die mit Spannung erwartete Veröffentlichung von Prosody 0.11.0 bekannt zu geben!

Dies ist die erste Version der 0.11-Serie, die nun als stabile Serie betrachtet wird. Mit über 2000 Commits wäre dieses Release ohne die Hilfe unserer vielen Mitwirkenden, Tester und anderen Community-Mitglieder nicht möglich gewesen. Vielen Dank!

Höhepunkte

Wenn Sie sich auf 0.11.0 freuen, handelt es sich sicherlich um eine oder beide der Komponenten, für welche bei dieser Version umfangreiche Arbeit geleistet wurde: MUC und Pubsub.

Diese Komponenten implementieren zusammen zwei der umfangreichsten XEPs, die XMPP derzeit bietet. Obwohl ältere Versionen bereits Unterstützung für MUC und Pubsub hatten, sind beide Komponenten recht komplex und nach unserer ersten Implementierungserfahrung wurden sie umgebaut, um die XEP-Abdeckung, die Quellcodestruktur und die Skalierbarkeit zu verbessern.

In dieser Version wurden viele weitere Änderungen, Verbesserungen, Fehlerbehebungen und Leistungsverbesserungen vorgenommen. Die wichtigsten Themen werden unten erläutert.

Bemerkenswerte Funktionen

Chatraum-Verbesserungen

Eine der größten Änderungen in dieser Version ist eine fast vollständige Neuimplementierung unseres MUC-Quellcodes (Multi User Conference). Dieses ehrgeizige Projekt wurde vor einigen Jahren von daurnimator ins Leben gerufen, der den Großteil des neuen Quellcodes entwickelte.

Obwohl die wichtigsten Änderungen intern sind, konnten wir damit leichter neue Funktionen hinzufügen und die Skalierbarkeit von MUC-Diensten verbessern (diese Version des MUC-Moduls versorgt Jitsi Meet sowie andere Dienste mit Hunderttausenden von Räumen).

Die Verbesserungen sind zu viele, um sie aufzulisten, aber einige Höhepunkte werden hier aufgelistet.

Verbesserte Konfiguration

Unsere Konfigurationsmaske wurde überarbeitet und bietet ein übersichtlicheres Layout und benutzerfreundlichere Optionsnamen.

Dialogfeld „Raumkonfiguration“

Wir freuen uns darauf, Übersetzungen in einer zukünftigen Version zu unterstützen!

Nachrichtenarchivierung

Unterstützung für das Archivieren und Abfragen alter Nachrichten in einem MUC wurde mittels MAM-Protokoll (XEP-0313) hinzugefügt. Dadurch kann ein Client beispielsweise Nachrichten anzeigen, die in einem Raum während der Abwesenheit des Clients geschrieben wurden.

Spitznamen-Reservierung

Um Verwirrung zu vermeiden, kann Prosody jetzt Spitznamen-Reservierungen durchsetzen. Dies verhindert den Identitätswechsel einer Person, wenn sie sich nicht im Raum befindet. Standardmäßig können dies nur Besitzer/Administratoren eines Raums tun (wenn ein Benutzer zum Mitglied des Raums gemacht wird), es kann jedoch auch so konfiguriert werden, dass Benutzer ihre eigenen Spitznamen registrieren bzw. auch Mitglieder werden können.

Pubsub-Protokoll

Unsere Pubsub-Implementierung ist in dieser Version stark gewachsen. Link Mauve steuerte die Knoten- und Elementpersistenz bei, was bedeutet, dass Daten auf der Festplatte statt im Speicher gespeichert werden können und beim Neustart des Servers nicht verloren gehen.

Wir haben auch die Unterstützung für die Knotenkonfiguration und das Verbindungsmanagement implementiert, die für die erweiterte Zugriffskontrolle und letztlich für die „Veröffentlichungsoptionen“ erforderlich sind, mit denen Clients Elemente mit den gewünschten Berechtigungen veröffentlichen können.

PEP

Unser alter PEP-Quellcode war eine separate, eingeschränkte Implementierung von Pubsub, die alles implementierte, was Clients 2009 benötigten. Im Laufe der Jahre wurden immer mehr Pubsub-Funktionen für PEP (Personal Eventing Protocol) gewünscht, da dieses sich zunehmend verbreitete. Es wurde offensichtlich, dass PEP alle Pubsub-Funktionen bereitstellen musste und denselben Quellcode verwenden sollte.

Florian Zeitz begann diese Arbeit mit dem Erstellen eines neuen „mod_pep_plus“-Moduls. Dieses Modul hat jetzt das ursprüngliche „mod_pep“-Modul ersetzt und ist somit die Standard-PEP-Implementierung.

Dies bietet Unterstützung für OMEMO mit Nicht-Kontakten in Unterhaltungen und mit anderen Clients. Außerdem können Clients PEP zum Speichern von Lesezeichen und anderen Daten verwenden.

Neues vCard-Format

Diese Version bietet Unterstützung für die neuere Version der in XEP-0292 beschriebenen vCard-Spezifikation, die verschiedene neue Eigenschaften unterstützt.

Sie wird auch in PEP gespeichert, um eine vollständige Zugriffskontrolle zu ermöglichen (z.B. können Sie wählen, ob Ihre vCard öffentlich oder nur für Kontakte verfügbar ist).

Derzeit unterstützen nur wenige Clients vCard4, das ältere „vcard-temp“-Protokoll wird jedoch weiterhin unterstützt, indem mod_vcard_legacy verwendet wird, das transparent auf das neuere Format umgesetzt wird, bis die Clients aktualisiert wurden.

Optimierung der Akkulaufzeiten

Diese Version enthält einige Community-Module, die die Akkulaufzeit für Smartphones und Tablets verbessern sollen. Kontinuierlicher Datenverkehr wie Kontaktstatus-Änderungen und Chatraum-Nachrichten können verhindern, dass ein Smartphone in den Energiesparmodus wechselt. Diese Daten sind jedoch in der Regel unwichtig, insbesondere wenn der Bildschirm des Telefons ausgeschaltet ist oder sich die App im Hintergrund befindet.

Clients, die XEP-0352 unterstützen, wie z.B. Conversations, können den Server informieren, wenn sich die App im Hintergrund befindet, und Prosody optimiert den Verbindungsverkehr entsprechend.

Dies ist in mod_csi_simple implementiert.

Interne Änderungen

Asynchrone APIs

In unsere interne asynchrone API wurde viel Arbeit investiert, um die Robustheit zu verbessern und Tests hinzuzufügen. Letztlich wird diese API verwendet um Leistungsverbesserungen bei großen Diensten zu erzielen.

Mit diesen Änderungen bietet diese Version experimentelle Unterstützung für asynchrone Authentifizierungs- und Speicher-Plugins. Sie werden jedoch in dieser Version nicht offiziell unterstützt, da für zukünftige Versionen noch einige große Änderungen anstehen.

Automatisierte Tests

Eine der größten Verbesserungen des Projekts war in letzter Zeit die wachsende Anzahl automatisierter Tests. Ältere Versionen wurden fast vollständig manuell getestet, wobei nur wenige automatisierte Tests verfügbar waren. Wir führen jetzt nach jeder Änderung eine umfangreiche Testreihe durch. Mehr Details dazu in einem zukünftigen Beitrag!

Native Epoll-Unterstützung

Dieses neue experimentelle Netzwerk-Backend bietet eine Alternative zur Verwendung von libevent. Die Vorteile sind, dass es kleiner und einfacher ist, wenn auch nur unter Linux verfügbar.

Ältere Version aktualisieren

Wenn Sie ein Upgrade von einer älteren Version durchführen, empfehlen wir Ihnen dringend, die Versionshinweise zu lesen.

Hier sind einige wichtige Änderungen aufgeführt.

MySQL-Upgrade

Benutzer von MySQL müssen ihr Schema aktualisieren, bevor Prosody 0.11 ausgeführt wird. Dadurch werden einige Fehler behoben, welche ansonsten die neuen PEP-Funktionen verhindern.

Nach dem Prosody-Upgrade: prosodyctl mod_storage_sql upgrade

Lua 5.2

Prosody verwendet historisch Lua 5.1. Wie wir bereits bei der Veröffentlichung von 0.10 angekündigt haben, sind wir auf dem Weg, auf neuere Lua-Versionen zu aktualisieren.

Die empfohlene Lua-Version für 0.11 ist Lua 5.2, während Lua 5.1 weiterhin für die Betriebssysteme unterstützt wird, die dies benötigen. Die 0.11.x-Serie ist jedoch die letzte, die noch Lua 5.1 (und LuaJIT) unterstützt.

Anleitungen

Wenn Sie vorhaben, Prosody auszuprobieren, gibt es eine sehr gute Anleitung für die Einrichtung eines modernen XMPP-Servers vom Homebrew Server Club, unter Verwendung von Debian und Prosody 0.11

Herunterladen

Download-Hinweise für viele Betriebssysteme finden Sie wie üblich auf unserer Download-Seite.

Wenn Sie Fragen, Kommentare oder andere Probleme mit dieser Version haben, lassen Sie es uns wissen!

Übersetzungen


Über

Prosody is a lightweight and flexible XMPP server designed with ease-of-use and extensibility in mind.

⚛️ Atom feed

Letzte Beiträge