CFilter is a generic (email or text) filter frontend.
-- Reads standard input (until EOF) and sends it through a socket to a
specified host and port number (defaults to localhost:9999);
-- Receives data back from the socket (until EOF) and writes it to
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 was to implement complex e-mail filtering logic in Python without
incurring the (unacceptably large for large e-mail downloads) overhead
of starting up the Python interpreter for each individual message.
Instead, the daemon listening on the filter port can be written in Python
and just takes its data from this front end. (The SpamAssassin spam filter
uses a similar technique, but I wanted to be able to implement my own
custom logic in Python rather than being limited to the scriptability of
a third-party tool.)
Usage: cfilter [OPTION...]
CFilter, a generic filter front end.
-b, --bufsize=BUFSIZE Use the specified buffer size
-h, --host=HOST Use the specified host name
-r, --port=PORT Use the specified port number
-?, --help Give this help list
--usage Give a short usage message
-V, --version Print program version
Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options.