What is Wirebrush for SPAM?

Wirebrush for SPAM is an extreme efficient open source spam filtering middleware based on the SpamAssassin technology. The framework has been completely developed in C and implements a plugin architecture and a rule-based scheme similar to the SpamAssassin one.

What is new? How i should try Wirebrush?

All source has been made from scratch (no Perl code is included in Wirebrush). Wirebrush rules are very close to SpamAssassin ones but Wirebrush includes some new concepts and ideas in order to make better and faster filters:

  • Multithread rule evaluation: Each rule is executed in a thread. We had implemented a limitation. Two rules invoking functions belonging to the same plugin can not be executed in parallel (due to the usage of shared resources).
  • Lazy filter evaluation: Imagine an email getting an extremely high score during the filter evaluation (and there is a lot of rules waiting for execution). If getting a lower puntuation is not possible, why continue on evaluating rules?. This is the main idea behind lazy filter evaluation. Wirebrush includes this concept for too high and too low scores.
  • Extensible plugin architecture implemented using C-Pluff plugin framework. Thanks to the people behind C-Pluff.
  • Entirely written in C.
  • RFC2822 parsers are implemented from scratch as finite-state machines. Parsing a 100K RFC2822 file in less than 3 ms.
  • Bayes caching avoiding the computation of bayes probability more than one times.


Wirebrush for Spam is a project of the spam filtering team from SING Group. SING (New Generation Computer Systems) is a group of researchers from University of Vigo.

SING Universidade de Vigo

The Wirebrush main team is composed by Noemí Pérez, David Ruano, and José Ramón Méndez. They are responsible of the main idea, architecture and plugins. There is also two project members working in some areas of WireBrush for Spam. The following list details the programmers and main functions of them:

  • David Ruano: He is the responsible of the CORE plugin development (multithreading, lazy filter evaluation, ruleset, parameter parsing, etc…). He is also the responsible of SPF and RXL plugins.
  • Noemí Pérez: She is the responsible of EML parsing, Bayes and SpamHunting plugins.
  • Álvaro Pérez: He is the responsible and developer of the META evaluating process. The work is in progress and we believe getting done in a month.
  • José Ramón Méndez: He is the project leader. He is also responsible of HTML parsing, character sets, and collaborates with David on CORE plugin development. He is also the responsible of the development of this web site.


Some galician enterprises and colleges have contributed their ideas to improve Wirebrush for SPAM. We want to highlight the contributions of Eduardo Díaz from Ultreia Communicaciones, David Martínez from OpenHost and Jorge Vazquez from Redegal.

Special thanks to all people contributing with the project.