Почтовый сервер Stalwart достиг версии 1.0: в новой версии улучшены парсеры, расширена функция полнотекстового поиска, а также внесены изменения в работу с базами данных и протоколом OAuth.
Содержание.
Компания Stalwart выпустила первую стабильную версию своего программного обеспечения (версия 1.0): это обновление сервера электронной почты и совместной работы включает в себя значительные улучшения производительности и функцию полнотекстового поиска документов. Существующие установки потребуют переноса данных.
Сервер Stalwart, написанный на языке Rust, объединяет функции электронной почты, календаря, адресной книги и хранения файлов. Он поддерживает такие протоколы, как SMTP, IMAP, JMAP, а также CalDAV, CardDAV и WebDAV, и может управляться через веб-интерфейс. Таким образом, он предназначен как для пользователей, самостоятельно разворачивающих сервер, так и для компаний и провайдеров услуг хостинга. Бесплатная версия распространяется под лицензией AGPL-3.0; коммерческая корпоративная версия предлагает дополнительные функции.
Новая структура базы данных требует переноса данных.
Согласно информации в примечаниях к версии Stalwart 1.0, новую версию нельзя установить просто путем замены файла программы поверх существующей установки версии 0.16.x. Причина: структура базы данных и некоторые части схемы конфигурации были изменены. Для обновления до новой версии проект предоставляет утилиту командной строки "stalwart-migrate". Она требует наличия версии 0.16.27, переносит настройки и копирует данные в новое, пустое хранилище. При этом старая установка остается без изменений.
Первая копия может быть создана в процессе работы системы; последующие этапы включают только внесение изменений. Только для завершающей синхронизации необходимо остановить старый сервер. Данные учетных записей, идентификаторы сообщений, UID-ы IMAP и история изменений сохраняются, поэтому клиенты не должны повторно загружать уже локально сохраненные сообщения. Пользователи OAuth должны будут заново авторизоваться, а Stalwart автоматически восстановит индекс полного текста в фоновом режиме. Для более старых версий и для постепенной миграции отдельных учетных записей существует альтернативный способ с использованием прокси-сервера миграции и инструмента Vandelay. Разработчики сообщают, что благодаря стабилизированной структуре будущие обновления не потребуют переноса данных.
Более быстрые парсеры и уменьшение количества обращений к базе данных.
В официальном объявлении о новой версии разработчики акцентируют внимание на оптимизации производительности. Новая библиотека `mail-parser` и новая библиотека кодирования `encodify` обрабатывают данные с использованием технологий SIMD и SWAR. Обе библиотеки одновременно обрабатывают несколько байтов; при этом технология SWAR использует обычные процессорные регистры вместо специальных векторных инструкций. Также были переработаны парсеры протоколов, токенизация фильтров спама и обработка выражений фильтрации и маршрутизации.
На уровне хранения данных Stalwart снижает количество обращений к базе данных и сжимает объекты с использованием алгоритма zstd, а также использует словари, оптимизированные для работы с данными электронной почты, календаря и контактов. Новая система кэширования компактно хранит индексы сообщений в оперативной памяти. Это позволяет выполнять такие операции, как сортировка IMAP, группировка писем по темам и запросы характеристик сообщений, при минимальном или полном отсутствии обращений к базе данных. Для больших учетных записей выделяется отдельная область кэша с определенным объемом памяти; снимки кэша могут храниться на локальных носителях, в Redis или в облачном хранилище.
В собственных тестах проект Stalwart был сравнен с Postfix версии 3.11.7 и Dovecot версии 2.4.5 на идентичных серверах Azure, оснащенных восемью виртуальными процессорами AMD-EPYC, 32 ГБ оперативной памяти и локальным хранилищем NVMe. Согласно результатам, в 35 из 38 тестов Stalwart показал лучшие результаты. Например, полнотекстовый поиск по 250 000 сообщениям занял 3,75 миллисекунды вместо 136 миллисекунд. Все три теста, выигранные Dovecot, касались функции отметки всех сообщений как прочитанных. Репозиторий с тестами содержит скрипты и необработанные данные, а также документацию об ограничениях, включая различия в синхронизации данных на диске.
Функция полнотекстового поиска охватывает вложения и файлы.
Stalwart теперь извлекает и индексирует текст из файлов PDF, Office, OpenDocument, а также из файлов EPUB и RTF. Это относится как к файлам, прикрепленным к электронным письмам, так и к файлам, хранящимся на диске. Благодаря этому, например, можно найти определенное слово в приложенном документе, даже если оно не встречается в тексте самого письма. Ограничения по размеру и сложности предназначены для ограничения потребления ресурсов при обработке документов.
Встроенная поисковая система теперь сохраняет позиции слов, что позволяет осуществлять поиск по фразам. Stalwart обрабатывает задачи индексации в фоновом режиме через очередь, ограничивая при этом количество параллельных задач. Неудавшиеся задачи можно повторить, а индексы перестроить. Кроме того, расширение IMAP METADATA позволяет клиентам сохранять и получать дополнительную информацию о папках электронной почты и сервере.
Более строгие проверки на соответствие стандарту OAuth и использование гибридных цифровых подписей DKIM2.
При обновлении администраторам также необходимо проверить аутентификацию: Stalwart теперь полностью поддерживает "OAuth Profile for Open Public Clients", который находится в процессе стандартизации. Внешние провайдеры OIDC должны соответствовать требованиям этого профиля. Настройки совместимости могут ослабить отдельные проверки безопасности, но не заменяют отсутствие поддержки данного профиля. Кроме того, кластеры в будущем потребуют использование системы хранения данных в оперативной памяти на базе Redis, а отдельные серверы получат встроенное локальное хранилище.
В версии 1.0 DKIM2 добавляет гибридные подписи, основанные на постквантовых алгоритмах ML-DSA-44 и Ed25519. Пользователи также могут отозвать права доступа у авторизованных приложений. Исходящие HTTP-запросы защищены от атак типа "подделка запросов с сервера" (SSRF), а резервные LDAP-серверы обеспечивают отказоустойчивость. Корпоративная версия расширяет возможности интеграции с искусственным интеллектом, добавляя поддержку нескольких поставщиков моделей и классификатор спама на основе ИИ.
Практика разработки также меняется: в будущем проект будет хранить свои наборы тестов в частном репозитории, а разработка новых функций изначально не будет осуществляться в открытом доступе. Однако исходный код каждой версии остается свободно доступным под лицензией AGPL-3.0.
Первоисточник — Heise
Сообщите редакции. Существенные исправления мы отмечаем в материале
