[xml] Network code in libxml (was: SSL/TLS support)

I am going to embark on a dangerous mission here. I will raise a possibly
unpopular question about the network support in libxml. Before anybody
feels offended by the question, please consider that I also have submitted
patches for the network code, and thus have invested time therein.

Do we really wish to extend the HTTP/FTP support in libxml?

This is not merely a question about the current SSL patches, but a general
question about the future direction of libxml.

In my view, libxml is a library for handling of XML, XPath, XPointer, and
related techologies, not a library for handling network communication,
despite the fact that it includes minimal support for HTTP and FTP.

Proper support for HTTP, HTTPS, FTP and similar protocols is full-scale
project in its own right. There are other libraries which specialize on
such support. By adding our own network support we are re-implementing
what these libraries does, and we probably do it less well than they do.
Furthermore, we have to maintain features once they are added.

We should let libxml excel at what it does well, and be cautious about
adding features that are irrelevant to the main purpose of libxml.

This leads me to a stronger version of the above question:

Do we really want networks support in libxml?

That is, should we keep the current HTTP/FTP code as part of the libxml
core? I am aware that this code is used by some, and we should not simply
remove it, but how about extracting it as a separate project?

I know that I can disable these features when I configure libxml, but
that is beside the point I am trying to raise. My main concern is with
the portability and continuous support of these features.

PS: I have pretty much the same option about the thread support in libxml,
which I would have preferred being implemented as callback functions, so
the application should provide the thread specific code, leaving the added
complexity out of libxml.

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]