Le projet vSMTP développe un nouveau serveur de messagerie (MTA) visant à garantir des performances élevées ainsi que des options flexibles pour le filtrage et la gestion du trafic. Le code du projet est écrit en Rust et est distribué sous la licence GPLv3.
Selon les résultats de tests publiés par les développeurs, vSMTP est dix fois plus rapide que les autres MTA concurrents. Par exemple, vSMTP a montré un débit de 4 à 13 fois supérieur à celui de Postfix 3.6.4 lors de l'envoi de messages de 100 Ko avec 4 à 16 sessions simultanées. Cette haute performance est atteinte grâce à une architecture multi-threading, où les flux interagissent via des canaux asynchrones.

vSMTP se développe avec un accent principal sur la sécurité élevée, ce qui est réalisé grâce à des tests intensifs utilisant des tests statiques et dynamiques, ainsi qu'à l'utilisation de Rust, qui, s'il est bien utilisé, permet d'éviter de nombreuses erreurs liées à la gestion de la mémoire. Les fichiers de configuration sont définis au format TOML.

Une des caractéristiques du projet est également la présence d'un langage intégré vSL pour écrire des scripts de filtrage de courriels, permettant de créer des règles très flexibles pour filtrer le contenu indésirable et gérer le trafic. Ce langage est basé sur Rhai, utilisant le typage dynamique, permettant l'intégration de code dans des programmes en Rust et fournissant une syntaxe ressemblant à un mélange de JavaScript et Rust. Les scripts disposent d'une API pour inspecter et modifier les messages entrants, rediriger les messages et gérer leur livraison vers des hôtes locaux et distants. Les scripts prennent en charge la connexion à des bases de données, l'exécution de commandes arbitraires et la mise en quarantaine des courriels. En plus de vSL, vSMTP prend également en charge SPF et des filtres basés sur des listes de relais ouverts pour lutter contre les messages indésirables.
Parmi les fonctionnalités prévues pour la prochaine version, on peut noter la possibilité d'intégration avec les SGBD basés sur SQL (actuellement, les informations sur les adresses et les hôtes sont spécifiées au format CSV) ainsi que le support des mécanismes d'authentification DANE (DNS-Based Authentication of Named Entities) et DMARC (Domain-based Message Authentication). Dans des versions plus avancées, il est prévu de mettre en œuvre les mécanismes BIMI (Brand Indicators for Message Identification) et ARC (Authenticated Received Chain), la possibilité d'intégration avec Redis, Memcached et LDAP, des outils de protection contre les attaques DDoS et les robots SPAM, ainsi que des plugins pour effectuer des vérifications dans les paquets antivirus (ClamAV, Sophos, etc.).
Source : opennet.ru
