Rspamd 3.9.0 has been released

12 Jul 2024

Today we have released Rspamd 3.9.0, featuring many new features and fixes. The most important ones are highlighted below. Refer to the migration notes for an overview of potentially-breaking changes.

Improvements to Bayes configuration

Rspamd now uses a reduced window size of 2 words by default. This change does not require retraining of statistics. In our tests, this reduced window size has produced the equal or better results with better performance and lower storage requirements - around 4 times less than with the previous default window size of 5 words. The new rspamadm classifier_test utility can be used for your own experiments.

New GPT module

This release provides a module for using LLMs for text classification and unsupervised learning. You can read more about it in a dedicated blog post.

Improvements to known_senders and replies modules

This release introduces enhancements to the known_senders and replies modules, enabling them to work together to flag verified user contacts. With these improvements, senders to whom a user has previously replied will automatically receive negative scores. For more details, please refer to the documentation of these modules.

Dynamic multipliers for ratelimits are now disabled by default

To avoid potential confusion, dynamic ratelimits are now disabled by default and must be configured explicitly. Refer to the migration notes for details on how to do this.

Various bug fixes and new features

  • Rspamd HTTP API now supports IO in messagepack serialization format, rspamc client uses it now by default
  • Fixed a bug where redis bayes learned cache could grow infinitely (and overflow Redis database)
  • Fixed dynamic_symbols in the multimap plugin
  • Honor dynamic thresholds for greylisting module
  • Fixed a bug with statfiles disabling via settings
  • Fixed slow timer so it is can now distinguish slow sync and async rules and act properly in different cases
  • Implement fuzzy check retransmits backpressure
  • Use libarchive for 7 zip compressed headers
  • Serialize control commands to avoid missing/corrupted transfers over the worker <-> main channels
  • Improved Lua userdata checks performance
  • Reworked grow_factor to work in an orderly fashion
  • Fixed SUBJ_ALL_CAPS for unicase scripts by @ikedas
  • Fixed relearning of Bayes messages by @aduernberger
  • Fixed retrieving word count in the antivirus module by @PxPert
  • Improvements for rules by @twesterhever and @ishisora

We extend our gratitude to everyone who contributed to this release.