W3C Activities Library

W3C Sample Code Library Position Statement

The success of the Web has put very high demands on the efficiency and reliability by which people can exchange information. HTTP has been one of the main vehicles behind the success and has changed significantly in the last six years to keep up with the evolution. W3C is playing an active role in the design and development of HTTP and an important part of this work is to test out new ideas and features in real applications.

The purpose of libwww is to provide an environment for experimenting with extensions and new features - most notably for HTTP but also for many other parts of the Web. The focus of libwww is client side applications like robots and browsers. Libwww is part of the W3C Architecture area and contains sample code for HTTP clients and for other Internet protocols such as FTP, Gopher, News, WAIS, Telnet servers. It has a rudimentary HTML parser which can only do the very basics but please have a look at the Amaya Web client for a full-blown HTML browser/editor application.

History

Libwww has been part of the World Wide Web almost from the beginning. Tim Berners-Lee designed and implemented the first version back in November 1992 in order to demonstrate the Web model. Many people have picked up the Library and used it in a variety of contexts. Applications such as Lou Montulli's Lynx character based client, Mosaic Web browser by Marc Andreesen and Eric Bena, and the CERN server by Ari Luotonen were all based on later versions of libwww. Later on, applications like the Arena browser by Dave Raggett and Håkon W. have been added to the list.

Current Status

Libwww is freely available under W3C copyright for use by anyone. The distribution package contains a set of example applications spanning from very simple ones to more advanced ones like a robot, and a text based Web client.

With version 5.0 of libwww which was released September 10 1996, the status of libwww has changed from generic Web toolkit for writing applications to playground for experimenting with HTTP. The reason for this is that the need for a generic Web API written in basic C has changed and we are now more focused on how to improve HTTP than to provide a generic Web API.

Release 5.1 which was used in the HTTP performance work is expected to be the last release of Libwww. We are now moving to the Jigsaw code base, written in Java. Java provides a more powerful platform for experimentation than C, which will accelerate our new protocol experiments this year. This does not mean that W3C will not produce protocol sample code but merely that we have chosen to use a more powerful environment. Except for security fixes there will be no more patches or updates for libwww.

Recent Accomplishments

Version 5.1 released February 18 1997
The focus for version 5.1 was to implement a high-performance HTTP/1.1 client used as a testbed for the "Network Performance Effects of HTTP/1.1, CSS1, and PNG" paper. This release which was used in the HTTP performance work is expected to be the last release of Libwww, since we are now moving to the Jigsaw code base, written in Java. Java provides a more powerful platform for experimentation than C, which will accelerate our new protocol experiments this year.

What is the Next Step?

With the release of version 5.0, libwww will not be released bi-annually as for previous versions. Instead, libwww will be used for extensive experimentation with new features in HTTP and for gathering data with new protocols like W3Mux.  We are also actively looking into how the experiences from building the libwww API fits into the paradigm of mobile code being an important part of the Web model. Especially, we are looking to integration between libwww and ILU and also how we can integrate libwww with other languages such as Tcl and Java. For a specific list of new features, please look at the Library work list for libwww.

Enter your e-mail address to receive e-mail (courtesy of NetMind) when this page is updated:


W3C
Henrik Frystyk Nielsen, libwww@w3.org,
@(#) $Id: Activity.html,v 1.12 1997/04/05 00:25:03 frystyk Exp $