Stalwart 1.0 вышел из стадии разработки: почтовый сервер ускорили и расширили
Stalwart выпустил первый мажорный релиз Community. Разработчики переработали поиск, хранение данных, парсеры и добавили поддержку календарей, контактов и файлов.
В конце октября 2026 года проект Stalwart выпустил первый мажорный релиз Community — версию 1.0. От первого коммита до стабильного релиза прошло около пяти лет. Исходный код сервера написан на Rust и опубликован на GitHub под лицензиями GNU Affero General Public License v3.0 (AGPL-3.0) и Stalwart Enterprise License v2 (SELv2).
Около 85% возможностей Stalwart доступны бесплатно и распространяются по AGPL-3.0. Остальные функции входят в редакцию Enterprise, ориентированную на крупные организации и хостинг-провайдеров. В неё входят, в частности, multi-tenancy, подготовка учётных записей через SCIM, шардированное хранилище и телеметрия в реальном времени.
Производительность и архитектура
Разработчики называют Stalwart «самым быстрым почтовым сервером на планете». По данным внутренних испытаний, поиск по базе из 250 000 сообщений занимает менее четырёх миллисекунд. В отдельном нагрузочном тестировании Stalwart сравнивали с Postfix 3.11 и Dovecot 2.4 на одинаковых виртуальных машинах Azure с восемью vCPU AMD EPYC Zen 5, 32 ГБ оперативной памяти и локальными NVMe-накопителями.
Stalwart показал лучшие результаты в 35 из 38 сценариев. При обработке входящих SMTP-сообщений сервер достиг скорости 5445 сообщений в секунду, тогда как Postfix обработал 723. В тестах типичных операций IMAP Stalwart оказался эффективнее в 14 из 15 случаев: преимущество составляло от 1,4 до 19 раз. Эти результаты получены в тестовой среде разработчиков и не заменяют самостоятельные проверки на конкретной инфраструктуре.
Stalwart поддерживает SMTP, IMAP, POP3 и JMAP. За время развития проект также превратился в платформу для совместной работы: в него добавили календари, контакты и обмен файлами с использованием CalDAV, CardDAV и WebDAV.
Что изменилось в версии 1.0
В релизе переработали ключевые парсеры с применением SIMD и SWAR. Эти технологии позволяют обрабатывать несколько байтов одновременно, а не разбирать поток последовательно. Библиотеку mail-parser переписали с нуля. По оценке команды, она работает до трёх раз быстрее mailparse для Rust и до девяти раз быстрее парсера, который используется в Dovecot. Новая библиотека encodify ускоряет кодирование и декодирование Base64 и quoted-printable.
Заметные изменения коснулись работы с базами данных. Разработчики сократили число избыточных операций с хранилищем, оптимизировали транзакции и добавили сжатие zstd, адаптированное для почты, календарей и контактов. Отдельные оптимизации реализованы для RocksDB, PostgreSQL, MySQL, SQLite и FoundationDB.
Систему кэширования также переработали. Сортировка сообщений, группировка в цепочки и получение флагов во многих случаях выполняются почти без обращений к базе данных. Полнотекстовый поиск получил поддержку фраз, стемминга и префиксов, а сжатые индексы должны повысить эффективность работы.
Stalwart научился индексировать содержимое документов. Сервер извлекает текст из PDF, файлов Microsoft Office, OpenDocument, EPUB и RTF, после чего позволяет искать по нему независимо от того, находится ли документ во вложении письма или во встроенном хранилище.
В Stalwart 1.0 добавили поддержку метаданных JMAP и IMAP, постквантовых подписей DKIM2 на основе ML-DSA-44 и Ed25519, а также расширили интеграцию с OAuth и OpenID Connect. Кроме того, были улучшены аутентификация, настройка хранилищ и защита серверной части от SSRF-атак.
Миграция на новую версию
В релизе окончательно зафиксировали схему базы данных. Поэтому Stalwart 1.0 не может напрямую работать с базами, созданными в предыдущих версиях: перед обновлением потребуется однократная миграция. В будущих выпусках разработчики планируют поддержать обновление «на месте», без сложных преобразований базы.
Для пользователей Stalwart 0.16.27 предусмотрен инструмент stalwart-migrate. Он переносит данные постепенно, пока старая версия продолжает работать, что позволяет сократить период простоя при переходе на Stalwart 1.0.
Сообщить о проблеме в публикации
Обращение принято Обращение будет рассмотрено. По результатам проверки публикация может быть исправлена, дополнена, временно скрыта или удалена.







