Version 0.1.1 Logo

CFilter is a generic filter "front end" that simply does the following:

Thus all the actual "filter" logic is in the daemon that is listening on the specified port; that daemon can have arbitrarily complex state and code, because it only loads once; this client program can stay very small and lightweight so it can load quickly.

The use case that prompted this project was the desire to implement complex e-mail filtering logic in Python without incurring the (unacceptably large) overhead of starting up a new instance of the Python interpreter for each individual message. I wanted to use a technique similar to the SpamAssassin spam filtering tool, which runs a daemon in the background and uses a small, fast client program to feed data for individual messages to and from the daemon. However, I wanted a tool that would be completely general, able to talk to any daemon given its host name and port number (i.e., not limited to daemons running on localhost), and doing no processing of its own on the data, so it can work with daemons written in any language (in my case, Python). Lastly, I wanted something with no extra frills or features, so it would be as light and fast as possible (in other words, I didn't want to use a tool like netcat with lots of extra options and capabilities).

CFilter is hosted on SourceForge; here are the key links to its pages there:

Project Home Page
Download Page
Browse Subversion Repository

Copyright (C) 2008 by Peter A. Donis.