ietf-mxcomp
[Top] [All Lists]

RE: Why should I link a library thats larger than my ENTIRE MTA?

2004-06-14 18:02:43

It is pretty easy to write a simple and compact XML parser for a single DTD.

I once wrote a Web browser that was only 75Kb of code, and that had an SGML
parser which is a much clunkier affair.


        Phill

-----Original Message-----
From: owner-ietf-mxcomp(_at_)mail(_dot_)imc(_dot_)org
[mailto:owner-ietf-mxcomp(_at_)mail(_dot_)imc(_dot_)org]On Behalf Of Aredridel
Sent: Monday, June 14, 2004 7:51 PM
To: ietf-mxcomp(_at_)imc(_dot_)org
Subject: Re: Why should I link a library thats larger than my ENTIRE
MTA?



Now can anyone see whats wrong with this picture, because 
*I* for one
certainly can.  So I am supposed to link a 1.3M library 
against my MTA,
___JUST___ to validate senders?  Can someone please explain 
this to me? 
I would ask why XML is even being considered but I'm not 
out looking to
start a flame, I simply would like to illustrate to 
everyone here that
there are some very deeply wrong things with XML, 
completely outside the
realm of publishing XML within DNS.

May I suggest a much more appropriate tool for the job? Expat, the XML
parser from James Clark, is a far smaller and simpler 
library. libxml is
a good general tool for dealing with large, complex XML related tasks.
For a simple record parser, expat is a much more natural interface.

A visual aid:

-rwxr-xr-x  1 root root 125K Jan 19 10:23 /usr/lib/libexpat.so.0.5.0
-rwxr-xr-x  1 root root 475K Mar 11 03:28 /usr/lib/libxml.so.1.8.17
-rwxr-xr-x  1 root root 957K Apr 19 04:41 /usr/lib/libxml2.so.2.6.9

So if your libraries are a bit larger than mine (debugging symbols,
likely), you're talking more like 200K. I think that's reasonable. If
not, in the tradition of qmail, a little patch doing just the 
neccesary
parsing and nothing more is likely to be quite a bit tighter. I think
the 20K tossed around earlier is quite likely to be accurate to well
less than an order of magnitude.  You won't get the ease of
extensibility, but I think that's a fair compromise.

Ari



<Prev in Thread] Current Thread [Next in Thread>