The next stable release of rspamd has been published. Here is a list of notable changes for 1.0.1 release:
- Add writing to rrd from the controller
- Fixed lots of bugs in rrd code
- Adopt new DNS API in hfilter plugin (by @AlexeySa)
- Allow only one controller process to manage rrd file
- Set event base for fuzzy calls
- Improve fuzzy IO errors logging
- Add rra extraction function to rrd library
- Add graph handler to the controller
- Cache correct passwords to avoid too high CPU usage when working with webui
- Controller sockets are owned by router do not export them to task
- Optimize logging by skipping hash table search if it’s empty
- Fix loading issue with broken statfiles
- Print assertions from glib to rspamd logger
- Load legacy
- Update webui with some fixes to learning and scanning
This version is completely backward compatible with
After about 4 months of development and ~1000 commits I’m proud to publish the next major release of rspamd:
1.0.0. In this version, I did another bunch of
architectural rework. This time, I’ve refactored statistics, symbols cache and
HTML processing primarily. At the same time, I’ve tried to improve rspamd usability
out of the box:
- improving default rules
- improving documentation
- improving installation
Among new rules, rspamd now includes an extensive whitelist for valid mail (e.g. with valid combinations of DKIM/DMARC/SPF).
DMARC module is now also enabled by default. The new
ip_score module is intended to score messages based on theirs IP reputation.
New statistics includes
sqlite3 statistics with such features as per user and per language statistics. Moreover, rspamd
now takes metadata, such as messages’ headers or images into consideration when generating statistical tokens. The updated pre built statistics is also
available for download.
The main architectural improvement in rspamd that was introduced in 1.0 was the ability to add dependencies between rules. Previosuly, the only way to separate asynchronous rules from each
others was using of pre or post filters. In rspamd 1.0 it is possible to create dependencies between any rules, even asynchronous ones, such as DNS or redis rules.
Among other notable changes are:
- New HTML parser that allows to create rules using many HTML attributes, such as:
- Colors (font and background)
- Structure elements
- Improved URL parser
- New logger
Many other things has been changed as well. However, I’ve tried to preserve backwards compatibility with
0.9/ The main incompatible issues are listed in the
The full list of major changes could be found here: http://git.io/vnJvF. Moreover, there were a lot of minor changes, improvements and features intorduces with this version.
If you’d like to install the new rspamd version you can check the following document that describes the available distributions in binary and source forms.
I’d like to thank all rspamd contibutors especially Andrew Lewis for his contributions to lua modules and the overall
rspamd development, and Andrey Zverev for
his kind advices and patience while testing bugfixes.
1.0 release I plan to switch to feature releases, meaning shorter release cycle and more frequent releases. Thank your all for your support and contibutions!
I will now publish updates about rspamd development in its @rspamd account. Please follow to keep in touch!
After almost half a year of development we are intorducing rspamd 0.9 which is the next major version of rspamd. You can view the full list of changes in the
ChangeLog file. But here is the list of the most notable changes introduced in this version:
- Improved optimizations via abstract syntax tree for all expressions (my presentation describes some basic principles of optimizations.
- Switched to luajit and pcre jit by default. JIT compilation allowed to improve the performance in the bottlenecks so now rspamd is significantly faster than 0.8 branch.
- Added spamassassin rules support: you can now use the most of your spamassassin rules in rspamd natively. Of course, they are optimized with JIT and AST techniques.
- Added encryption support: rspamd now can encrypt all traffic with extremely fast and low latency encryption based on public key cryptography and cryptobox construction.
- New aho-corasic implementation has been imported. Now rspamd can search for hundreds thousands of search patterns in almost linear time.
- New statistics architecture:
- advanced tokenization techniques (secure or fast hashes);
- improved UTF8 tokenization;
- avoid multiple learning by the same message by maintaining learning cache;
- improved features normalization to reduce false positives rate.
Moreover, this release contains a lot of other improvements to plugins, lua API, rspamd core and the build system. In fact, the most of rspamd codebase has been either reworked or completely rewritten
to improve the architecture, performance and stability.
We are proud to announce that rspamd is accepted by the Google Summer of Code program.
The list of ideas, possible mentors and other useful stuff is placed on the ideas page. We encourage prospective students to apply and help us to make rspamd better with funding generously provided by Google.