1 час назад
Вышел почтовый хост с открытым исходным кодом Stalwart 1.0

В конце октября 2026 года состоялся начальный мажорный релиз почтового сервера Stalwart с открытым исходным кодом (релиз Community). Это событие произошло спустя пять лет после первого коммита в проекте.
Исходный код решения написан на Rust и опубликован на GitHub под лицензиями GNU Affero General Public License v3.0 (AGPL-3.0) и Stalwart Enterprise License v2 (SELv2). Около 85% функциональных возможностей Stalwart являются бесплатными и распространяются с открытым исходным кодом по лицензии AGPL-3.0. Оставшаяся часть входит в состав редакции Enterprise и включает функции, важные для крупных организаций и хостинг-провайдеров, использующих Stalwart в больших масштабах: например, поддержку нескольких арендаторов (multi-tenancy), подготовку учетных записей через протокол SCIM, сегментированное (шардированное) хранилище и телеметрию в реальном времени. Полный перечень различий представлен на отдельной странице проекта.

Авторы позиционируют это подход как «самый оперативный почтовый хост на планете». Согласно результатам внутренних тестов, поиск по массиву из 250 000 сообщений занимает менее четырех миллисекунд. Команда Stalwart провела масштабное нагрузочное тестирование, сравнив свою систему с Postfix 3.11 и Dovecot 2.4. Для этого использовались идентичные серверы в облаке Azure, оснащенные восемью виртуальными процессорами (vCPU) AMD EPYC Zen 5, 32 ГБ оперативной памяти и локальными NVMe-накопителями. В ходе испытаний Stalwart показал лучшие результаты, чем связка Postfix/Dovecot, в 35 из 38 сценариев. Например, система обрабатывала 5445 входящих SMTP-сообщений в секунду, тогда как Postfix — 723. В дополнение к этого, Stalwart продемонстрировал более высокую производительность в 14 из 15 типичных операций IMAP: показатели улучшились в диапазоне от 1,4 до 19 раз.

Stalwart представляет собой комплексное решение для электронной почты, поддерживающее протоколы SMTP, IMAP, POP3 и JMAP. Инициатива за несколько лет перерос в полноценную платформу для совместной работы: в него была добавлена поддержка календарей, контактов и обмена файлами через протоколы CalDAV, CardDAV и WebDAV.

Основные изменения и доработки в Stalwart 1.0
переработка ряда основных парсеров с использованием технологий SIMD и SWAR. Это позволило серверу обрабатывать несколько байтов данных одновременно, вместо того чтобы анализировать каждый байт по отдельности;
набор модулей для разбора почтовых сообщений (mail-parser) была написана с нуля: по заявлению разработчиков, она работает до трех раз быстрее, чем набор модулей mailparse для Rust, и в девять раз быстрее, чем парсер, используемый в Dovecot. Помимо этого, новая библиотека кодирования encodify ускорила обработку данных в форматах Base64 и quoted-printable;
значительные улучшения коснулись и взаимодействия с базами данных. В Stalwart сокращено количество избыточных операций с хранилищем, оптимизировано выполнение транзакций, а также внедрено сжатие данных (алгоритм zstd), адаптированное для работы с электронной почтой, календарями и контактами;
разработчики реализовали специфические оптимизации для различных бэкендов, в том числе RocksDB, PostgreSQL, MySQL, SQLite и FoundationDB. Помимо этого, была переработана платформа кэширования: теперь многие распространенные операции IMAP — такие как сортировка, группировка сообщений в цепочки (треды) и получение флагов сообщений — выполняются практически без обращения к базе данных;
ещё одним важным усовершенствованием стал целиком переписанный механизм полнотекстового поиска. Он теперь поддерживает поиск по фразам, стемминг (приведение слов к основе) и поиск по префиксам, а использование сжатых индексов позволило повысить общую эффективность;
появилась функция индексации содержимого документов. Stalwart теперь может извлекать текст из файлов форматов PDF, Microsoft Office, OpenDocument, EPUB и RTF, а равным образом выполнять поиск по нему — вне зависимости от того, хранятся ли эти файлы во вложениях к письмам или во встроенном память системы;
сопровождение метаданных JMAP и IMAP, внедрение постквантовых подписей DKIM2 (комбинация алгоритмов ML-DSA-44 и Ed25519), а равным образом расширенные возможности OAuth и OpenID Connect. В этом релизе равным образом улучшены механизмы аутентификации, конфигурация хранилищ и безопасность от подделки запросов на стороне сервера (SSRF);
окончательная фиксация схемы базы данных. По словам разработчиков, в будущих версиях апдейт системы можно будет выполнять «на месте» (in‑place), без трудоёмких миграций базы данных, которые требовались ранее;
для перехода на версию 1.0 потребуется однократная миграция данных, поскольку новая релиз не может напрямую функционировать с базами данных, созданными в предыдущих выпусках. Для пользователей, работающих со Stalwart 0.16.27, предусмотрен особый средство stalwart‑migrate. Он даёт возможность переносить данные постепенно, пока старый хост продолжает работать, что сводит время простоя к минимуму.

Продолжить читать
