Stalwart, der in Rust geschriebene Mail- und Kollaborationsserver, hat Version 1.0 veröffentlicht — das erste stabile Release und das erste, dessen Datenbanklayout nach dem Willen des Projekts dauerhaft Bestand haben soll. Bestehende Installationen kommen nicht durch bloßes Austauschen der Programmdatei dorthin.

Das am Montag von heise online gemeldete Release ist weniger ein Feature-Paket als eine Abrechnung mit der 0.x-Ära. Version 1.0 ändert sowohl das Datenbanklayout als auch Teile des Konfigurationsschemas, weshalb das Projekt ein Kommandozeilenwerkzeug mitliefert: `stalwart-migrate` kopiert Einstellungen und Daten in einen neuen, leeren Speicher. Es setzt Version 0.16.27 als Ausgangspunkt voraus. Die erste Kopie kann entstehen, während der alte Server weiterarbeitet; weitere Läufe übernehmen nur Änderungen, und erst der abschließende Abgleich verlangt, dass die alte Instanz stoppt. Konten- und Nachrichtenkennungen, IMAP-UIDs und Änderungshistorien überstehen den Umzug, sodass Clients bereits lokal gespeicherte Mail nicht erneut herunterladen. OAuth-Nutzer müssen sich neu anmelden, der Volltextindex wird im Hintergrund neu aufgebaut. Wer den Sprung nicht in einem Zug machen kann, bekommt einen zweiten Weg: einen Migrationsproxy plus das Werkzeug Vandelay, um Konten einzeln zu verschieben.

Die Substanz der Ankündigung ist die Performance-Arbeit. Die neu geschriebene Bibliothek `mail-parser` und die neue Kodierungsbibliothek `encodify` arbeiten mit SIMD- und SWAR-Techniken — mehrere Bytes pro Befehl, wobei SWAR gewöhnliche Prozessorregister statt Vektorbefehlen nutzt. Die Protokollparser, die Tokenisierung des Spamfilters und die Auswertung von Filter- und Routingausdrücken wurden nach demselben Prinzip überarbeitet. Auf der Speicherseite senkt der Server Datenbankzugriffe, komprimiert Objekte mit zstd und auf Mail-, Kalender- und Kontaktdaten abgestimmten Wörterbüchern und hält Nachrichtenindizes in einem kompakten Cache im Arbeitsspeicher. Große Konten erhalten einen eigenen Cache-Bereich mit Speicherbudget; Snapshots können auf lokalen Datenträgern, in Redis oder im Blob-Speicher liegen.

Der Hersteller-Benchmark ist ungewöhnlich konkret: identische Azure-Maschinen mit acht AMD-EPYC-vCPUs, 32 GByte RAM und lokalem NVMe, gegen Postfix 3.11.7 und Dovecot 2.4.5. Stalwart lag in 35 von 38 Vergleichen vorn. Eine Volltextsuche über 250.000 Nachrichten dauerte 3,75 statt 136 Millisekunden. Alle drei Dovecot-Siege betrafen das Markieren sämtlicher Nachrichten als gelesen. Das Projekt veröffentlicht das Benchmark-Repository samt Skripten und Rohdaten und dokumentiert auch Einschränkungen, darunter Unterschiede beim Schreiben auf den Datenträger. Das ist ehrlich — und der Grund, warum die Schlagzeile „schnellster Mailserver der Welt“ ein Sternchen verdient, bis jemand von außerhalb des Projekts sie auf anderer Hardware und mit anderen Postfachprofilen nachvollzieht.

Auch die Suche selbst wurde breiter. Stalwart extrahiert und indexiert jetzt Texte aus PDF-, Office- und OpenDocument-Dateien, EPUB und RTF, sowohl in Anhängen als auch in der Dateispeicherung. Eine Suche findet damit eine Vertragsklausel im Anhang, die im Nachrichtentext nie vorkommt. Größen- und Komplexitätsgrenzen begrenzen den Ressourcenverbrauch der Dokumentverarbeitung. Die eingebaute Suchmaschine speichert Wortpositionen und unterstützt damit Phrasensuchen; Indexierungsaufträge laufen über eine Warteschlange mit begrenzter Parallelität, lassen sich wiederholen, Indizes neu aufbauen. IMAP METADATA kommt hinzu.

Beim Upgrade haben Administratoren echte Arbeit. Stalwart setzt das noch standardisierte „OAuth Profile for Open Public Clients“ nun vollständig durch, externe OIDC-Anbieter müssen es erfüllen; Kompatibilitätseinstellungen können einzelne Prüfungen lockern, ersetzen aber keinen Anbieter ohne dieses Profil. Cluster brauchen einen Redis-basierten In-Memory-Speicher, Einzelserver erhalten einen eingebauten lokalen. DKIM2 gewinnt hybride Signaturen aus dem Post-Quanten-Verfahren ML-DSA-44 und Ed25519. Nutzer können autorisierten Anwendungen den Kontozugriff entziehen, ausgehende HTTP-Anfragen sind gegen Server-Side Request Forgery geschützt, sekundäre LDAP-Server ermöglichen Failover. Die kommerzielle Enterprise-Ausgabe ergänzt Anbindungen an mehrere KI-Modellanbieter und einen KI-Spamklassifikator.

Eine Änderung hat nichts mit Codequalität zu tun und alles mit der Art, wie das Projekt geführt wird: Stalwart hält seine Testsuiten künftig in einem privaten Repository und entwickelt neue Funktionen vor der Veröffentlichung nicht mehr öffentlich. Der Quellcode jedes Releases bleibt unter AGPL-3.0 frei. Für Selbsthoster ist das ein Tausch — weniger sichtbarer Prozess, dieselbe Lizenz am Artefakt. Für alle, die die Entwicklung offen verfolgt haben, ist es das Ende davon.