Re: libwww


Thanks for joining me into the discussion! My comments (and some from
Tim) are merged into the text below:

> >        I am nearly finished with the integration of the Shen stuff into
> >libwww. The hooks are very general so that it should be possible to integrate
> >SHTTP into the same scheme. The initial release will be a medium security,
> >standalone system not needing any other encryption product (eg SecuDE or
> >an X500 directory) and with minimal complexity. The idea is to leverage
> >Certificate handling etc off this system.
> Sounds like a good strategy.  Our attitude toward all this security stuff is
> to try and keep it simple.

We are preparing a release ot the World-Wide Web Common Code Library at
the end of this week. The version number will be 3.0pre1 as this
release contains two new importans features. First, as Phillip has
indicated, encryption/decryption functionality has been added, and
secondly the HTTP client has been rewritten so that it now has a
interruptable, multithreaded I/O interface. Even though FTP and Gopher
are fully prepared for multithreaded functionality, HTTP is the most
important and therefore has highest priority.

At the same time the current version 2.16pre2 will be upgrated to
version 2.17. The reason for this is that this version is quite stable
and is the basis of the CERN Proxy Server. However, the plan is to
merge the multithreaded HTTP (3.0pre1) client and the single threaded
HTTP Client (2.17) into one version so that the next major release
contains the possibility of both a single threaded and a multi threaded
HTTP client.

> >        The big question then is how hard would it be to rebong Mosaic
> >onto the current release of CERN libwww? This would give a number of advantages
> >such as improved ftp support, gopher support that is transparent so you
> >don't really notice that you are gophering and lots more. I'm not sure how
> >much
> >hacking Marc did to libwww2 and what variety it is. If it was bug patches and
> >such we are probably past the point where the differences need keeping.
> Please bear with me as I digress a bit:
> The main problem is that libwww is not the same across all Mosaics.
> NCSA's three versions of Mosaic use 3 different libwww implementations,
> all loosely based on your version 2.09, but with very different mods made.
> The Mac and UNIX versions differ the most, since neither of those platforms
> are actually using libwww for HTML parsing.  Upgrading either the Mac
> or UNIX version of NCSA Mosaic to any current CERN version will be a
> large task.

The parts of the NCSA libwww2 library that I have seen contains some
very specific Mosaic parts that in my opinion makes it difficult to
combine Mosaic with the Library 2.16pre2 version. Futhermore, a lot of
the code has been pretty printed so diffs are basicly impossible
between the two libraries. Version 2.15 introduced some new fundamental
data structures into the library and the NCSA version that I have seen
doesn't use this at all.

On the protocol side both libraies provide basically the same support
for WAIS, gopher, and local file access to the client. The FTP client
in the CERN library is more general and now the HTTP module is

> Spyglass' versions of Mosaic use yet another libwww.  When we started,
> we threw out NCSA's libwww code and started with version 2.15 from CERN.
> We have made a large number of modifications, mostly for portability.  We
> are using the exact same libwww code for our Mac, Windows, and UNIX versions.
> Our version of libwww is still structured very much like your 2.15.

Good - we have lost your mail message in a big pile but now it is there and
I will look at it. A big `bug-fix-difference' between the CERN version
2.15 and 2.16 release is that we started using Purify to clean up the
memory and it has taken out most leaks, uninitialised reads/writes etc.

For more information on the current state of the library can be found at


> My understanding is that Lynx and DOSLynx provide 2 more totally different
> versions
> of libwww.

The Lynx version of the library is very close to the CERN version. The
basic structure is the same, but Lou Montulli has added a lot af fancy
features that not all are implemented in the CERN code. DOSlynx uses a
completely other library - I think it is written in C++...

> We believe it is important to get at least those 8 browsers using
> a common, shared code base for the non-GUI layers.  The 8 browsers I'm
> referring to are NCSA's 3 versions of Mosaic, Spyglass' 3 versions
> of Mosaic, and the 2 versions of Lynx.  We can certainly include others who want
> to cooperate, but I have contacted all the developers of these 8, and they are
> all interested in moving toward a common libwww code base.  Reaching that
> end is probably
> not likely to be as simple as just asking everyone to upgrade to 2.16.
> At the minimum, I think we can all agree that the state of affairs
> could be improved.  That state of affairs, if I may summarize
> it, is that CERN's libwww code has been hacked to create at least 9
> different versions, probably more.  Although all of these implementations
> share a common ancestry, they have all diverged to the extent that
> actually sharing the code, and integrating new releases will be non-trivial.

I agree! That's why I hope that our new mailing list
www-lib@info.cern.ch as a result of the WWW Conference at CERN will
make the communication better between the developers so that the
different versions eventually will converge. One of the reasons for it
being so quite until now is that Ari Luotonen has left CERN so the
developer group is now very small...

> Another variable to throw into the mix is W30.  TimBL is going to MIT.  Are
> you staying at CERN?  What about Henrik?  Who will be doing the primary
> development of libwww?  And where will that take place?

Tim says:  "I will be coordinating both sites in principle, with a lot of email
and flying.  There will be a local team leader here of course. Initial
funding should allow us to build up a team of around 7 people at CERN.
One should assume Henrik will be at CERN until one hears otherwise.
Others will join him.  Hakon Lie has joined us from Norweigan telecom for
a year."

As for my self - I have now less than three weeks to write my master thesis
so I guess that development will be quite dead until mid August.

> We have made no firm decisions about any of this yet.  We're still wrestling
> with the issues, but the goals are clear:
>   1.  We need a robust, maintainable body of code we can use, which
>         addresses our needs as a commercial provider of Mosaic.
>   2.  We would like that same body of code to be useful and used by
>         the other providers of WWW software, including NCSA, CERN,
>         TeamLynx, and whoever else wants to play.
>   3.  We want to collaborate with the other players, maintaining good
>         working relationships with NCSA, CERN, TeamLynx, W30, TBL,
>         and whoever else wants to play. :-)

Good. I think there is a strong feeling alongthose lines in most places,
which is largely why we started W3O  (and largely *how* we started W3!) - Tim.

-- cheers --

Henrik Frystyk