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.