A Brief History
Between July 2003 and October 2003 Damian Hamill developed a spam filtering application called Spam Annihilator using the Java(tm) programming language. He had developed server based spam filtering products some years before using the C programming language and the spam detection engine followed a similar design. Spam Annihilator differed from this earlier work though in that instead of being server based to provide filtering for many users it was intended to be used by end users as a personal spam filtering product with the addition of a GUI. It also differs from the earlier work in that it is written entirely in Java.
He always felt that the programming of a fixed spam detection engine would yield limited results. Although it uses a dynamically updated database of rules this 'fixed' design would need to be completely replaced if it became ineffective in catching spam. Also there are numerous tests which can be deployed to detect spam, for example tests to detect forged headers, coding all of these into a monolithic engine would prove unwieldy. The upshot was that he decided to incorporate into the program the ability to use plugin modules to extend the filtering capabilities of the main filtering engine. The resulting system allows plugin modules to be loaded at run time that are automatically downloaded from a central distribution server whenever updated. Each plugin can display it's own configuration setting GUI elements (a GUIlet) as part of the GUI of the parent application.
A number of plugin modules were developed to be released with Spam Annihilator. A Bayesian classifier, a character set filter, a plugin to test IP addreses using the SpamHaus DNS black list, a garbage filter to catch certain sequnces of characters that do not exist in a dictionary and a simple plugin to test for executable attachments. He realised that these plugin modules and the plugin architecture would be useful to other people developing spam filtering products and so decided to use the plugin modules and the interface specifications to establish an Open Source project.
The project was started in October 2003 as the Pugwash project hosted by SourceForge.
Java is a trademark of Sun Microsystems Inc.
This project is hosted by