W3C libwww

Libwww - 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 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.

News News and Updates

Libwww Version 5.1a released March 21

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.

Activities Libwww Position Statement

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.

Software Getting the Source Code

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.

Install Installation Guide and new Features

How do I get started using libwww? How can I compile it? What has changed in the latest release. Find out by starting here!

Documentation User Documentation and Design Overview

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.

Mail Mailing lists

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.

www-lib@w3.org
A public mailing list for an open discussion of ideas, diffs, new features etc. This is the most active list. See the information on mailing lists for details on how to subscribe.
www-lib-bugs@w3.org
A public mailing mailing list where you can register bugs and ideas that you would like to get into the code base. Register them here, so that we don't forget about them!
w3c-lib@w3.org
A W3C member mailing list for announcements of new member releases etc. See the information on W3C member mailing lists for details on how to subscribe

Authors and Contributors

These people and many more have been involved in turning libwww into the shape it has today.

Henrik Frystyk Nielsen
Designed and Implemented libwww up until version 5.0a
Tim Berners-Lee and Jean-Francois Groff
Came up with the initial design and implementation of libwww
Eric Prud'hommeaux
Provided the Windows integration and asynchronous event management along with many other features.
Anselm Baird-Smith
Provided lots of help through many white-board discussions, especially on the HTTP/1.1 client side implementation.
Jose Kahan
Integrated libwww with Amaya and provided feedback on client side API
Håkon W. Lie
Integrated libwww with Arena
and many others for contributions and bug fixes


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