Вышел почтовый сервер с открытым исходным кодом 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. Он позволяет переносить данные постепенно, пока старый сервер продолжает функционировать, что сводит время простоя к минимуму.

Источник: habr.com

0 0 голоса
Рейтинг новости
1
0
Подписаться
Уведомить о
0 комментариев