It's been said that a "POP Toaster" (a standalone mail server that does, at
minimum, POP and SMTP) is an application that any decent hacker can throw
together in a weekend.  I found this one called "XMail" [http://xmailserver.org]
that was started in 1999 and apparently abandoned in 2010.  It doesn't have
IMAP or Webmail but it looks like a nice compact little server that someone
put a reasonable amount of thought into.  I wonder if anyone is still using
it.  Nothing has been updated since 2010 and all of the mirror sites are long
gone. 
  
 It's only a coincidence that I stumbled upon XMail, and I'm not actually
interested in it at all, except to notice that it's an artifact of a time
when lots of people were building little mail servers.  What brought me to
the project's web site was a mentio  somewhere of a library called "libxdiff"
[http://www.xmailserver.org/xdiff-lib.html] that implements
"diff" and "patch" functions as a C library.  I don't know the relationship
between these two projects, or maybe one is just hosted on the other's web
site because they're the same author?  But I've been looking for something
like this for years.  I don't know how I missed it until now. 
  
 Citadel's wiki engine stores page revisions by saving a MIME multipart message,
with the first part being the current version of the page and the remaining
parts being a series of "diff" outputs from version to version.  When I wrote
the wiki engine many years ago, I looked all over the place for a C library
that could handle diff/patch functions.  All I found was implementations in
higher level languages.  I briefly looked at GNU Diff to see if I could just
pull out the parts I needed, but that code is so byzantine that there's no
hope of taking it apart. 
  
 I ended up writing code that calls out
to the "diff" and "patch" command line utilities.  I *hate* doing that, and
it's always bothered me.  Now that I've discovered LibXDiff, I can rewrite
that bit of code to keep all of the processing inside the Citadel Server's
memory space, instead of making potentially insecure calls to system utilities.

  
 But this effort won't begin until I finish the new inbox filter engine  :)

 

Reply via email to