vSMTP - почтовый сервер на Rust
Проект vSMTP развивает новый почтовый сервер (MTA), нацеленный на обеспечение высокой производительности и предоставление гибких возможностей по фильтрации и управления трафиком. Код проекта написан на языке Rust и распространяется под лицензией GPLv3.
В соответствии с опубликованными разработчиками результатами тестирования, vSMTP в десять раз быстрее, чем конкурирующие MTA. Например, vSMTP показал в 4-13 раз более высокую чем в Postfix 3.6.4 пропускную способность, при передаче сообщений размером 100 КБ и установке 4-16 одновременных сеансов. Высокая производительность достигается благодаря применению многопоточной архитектуры, в которой для взаимодействия потоков используются асинхронные каналы.
vSMTP развивается с первичной ориентацией на обеспечение высокой безопасности, что достигается интенсивным тестированием с применением статических и динамических тестов, а также применением языка Rust, позволяющего при должном использовании избежать многих ошибок, связанных с работой с памятью. Конфигурационные файлы определяются в формате TOML.
Особенностью проекта также является наличие встроенного языка vSL для написания сценариев фильтрации писем, позволяющего создавать очень гибкие правила отсеивания нежелательного содержимого и управления трафиком. Язык основан на языке Rhai, использующем динамическую типизацию, обеспечивающем встраивание кода в программы на Rust и предоставляющем синтаксис, напоминающий смесь JavaScript и Rust. Сценариям предоставляется API для инспектирования и модификации входящих сообщений, перенаправления сообщений и управления их доставкой на локальные и удалённые хосты. В сценариях поддерживается соединение к СУБД, запуск произвольных команд и помещение писем в карантин. Помимо vSL для борьбы с нежелательными сообщениями в vSMTP также поддерживаются SPF и фильтры на основе списков открытых релеев.
Из планов на будущий выпуск отмечается возможность интеграции с СУБД на базе SQL (сейчас данные об адресах и хостах задаются в формате CSV) и поддержка механизмов аутентификации DANE (DNS-Based Authentication of Named Entities) и DMARC (Domain-based Message Authentication). В более отдалённых версиях планируется реализовать механизмы BIMI (Brand Indicators for Message Identification) и ARC (Authenticated Received Chain), возможность интеграции с Redis, Memcached и LDAP, средства для защиты от DDoS и SPAM-ботов, плагины для организации проверок в антивирусных пакетах (ClamAV, Sophos и т.п.).
( читать дальше... )
>>> Подробности