Libwww is a general-purpose Web API written in C. It is a highly modular extensible API which can be used as the code base for writing Web clients and robots. The purpose of Libwww is to provide a sample implementation of HTTP and other Internet protocols and to serve as a testbed for protocol experiments. It has a rudimentary HTML parser which can only do the very basics. Please have a look at the Amaya Web client for a HTML browser/editor application and Jigsaw server for a full-blown server application.
This release is a "second generation" HTTP/1.1 implementation using persistent connections, pipelining, smart output buffering, and persistent caching. It is the code base that was used in the "Network Performance Effects of HTTP/1.1, CSS1, and PNG" paper. It has been tested against Jigsaw writte and Apache.
This 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.
What is the purpose of libwww? Can I use it as a developer tool for writing Web applications? How is it supported? Read answers to these questions and much more from the W3C position statement on libwww.
W3C Sample Code Library is covered by the MIT Copyright Statement, and with acknowledgment to CERN. We only release libwww and the example applications as source code - you must compile it yourself. The latest version is available in the following formats:
You can find old versions of the source code and diffs together with many other things on our FTP server and you can browse through the latest source files directly on our server. A packet contains the following components:
You can see how to unpack and compile the software in the README file, and you can find more information on how the Library is designed in the Library Architecture and how to use it in the User's Guide.
How do I get started using libwww? How can I compile it? What has changed in the latest release. Find out by starting here!
We have a huge amount of documentation about the design of libwww and how to use it for building applications. Often, however, the easiest is to study the example applications which show in practice how to do tricks with libwww. We try to keep the documentation up to date but it may not always be the case. The best thing is to have a look the list of exported functions. This list is generated automatically and is always up to date.
Libwww has the following set of mailing lists that you are more than welcome to use! Before you send mail to the lists, please check out the archives - they often contain good information about how to solve problems. Please do not send mail directly to the authors - the mail load is already rather high and you will most probably get a better response time by using one of the following mailing lists.
These people and many more have been involved in turning libwww into the shape it has today.