The W3C Sample Code Library (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, servers, proxies etc. The purpose of Libwww is to provide a reference code for HTTP and other Internet protocols and also to serve as a generic Web API. 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.
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.