Libwww consists of a set of APIs called packages which covers multiple related source modules; on Wintel packages are organized into DLLs and on Unix we organize them into separate libraries. A package interface is exported via a single include file of the type WWW*.h, for example WWWCore.h.
You can also have a look at the complete list of all public functions.
The core interfaces must be included in all applications.
This is a small interface that handles trace messages on Windows
The basic utility package contains mostly container modules, dynamic strings and other stuff that you can't live without when building applications. The modules are used by all other libwww packages but can also be used by the application.
The libwww core package is designed as a set of registration modules where features can be registered dynamically by the application. Examples of features that the application may want to register is HTTP access, local file access, HTML parser, etc. In the application package, you can find a set of default profiles helping you registering the most commonly used features.
These packages help the application set up functionality.
Libwww is a framework for adding functionality. It has hooks for adding protocol modules, like for example HTTP, FTP, and also for adding streams that can convert from one media type to some other type, or presenting the result to the user. In the distribution file of the Library you will find a large set of protocol modules and streams already implemented. However, in order to use these you need to initialize them. This can be done by using the services provided by the WWWInit module.
These packages provides services including handling proxies, gateways,
configuration files, support for PUT
, POST
,
OPTIONS
, HEAD
, etc. requests.
This application package handles a lot of features that many applications need: dialogs and progress notifications, high level URI resolving, rule files etc.
Transports are registered dynamically in libwww. This means that libwww is independent of the transport being used (for example TCP) and you can therefore use libwww in any context you like. Each transport is registered with a set of parameters describing how the transport behaves, for example whether it supports preemptive access etc.
This is the package that provides the TCP and Local file transports used by the protocol packages.
This is a very experimental package that provides pieces of the WebMUX specification
This is the package that provides SSL transport access used by the
https
URI scheme, for example
These packages handle MIME and the like.
The MIME parser package contains all the libwww functionality for handling RFC822/MIME parsing and generation including multipart MIME etc.
Protocols are also registered dynamically in libwww. They are registered to use a specific transport and whether they support preemptive access etc. See the application level packages for how to resolve URIs using libwww
This is the include file for resolving file: addresses or equivalent
This is the include file for resolving ftp: addresses or equivalent
This is the include file for resolving gopher: addresses or equivalent
This is the include file for resolving http: addresses or equivalent
This is the include file for resolving news: and nntp: addresses or equivalent.
This is the include file for resolving telnet:, rlogin:, tn3270: addresses or equivalent.
This is the include file for resolving wais: addresses or equivalent
These packages handle persistent management of information
This module implements a HTTP/1.1 persistent cache manager.
Streams and converters are an essential part of libwww - all dataflow happens using streams.
This interface provides a set of specialized stream. For example a stream for guessing unknown media types from magic words. It also contains streams for downloading a document into a memory buffer, counting content length and much more.
The directory browsing pacakge contains code for handling browsing folders in both local files including handling icons and the like.
Libwww can use zlib to compress/decompress content on the fly. This requires that zlib is available to link against, see the instructions on how to interact with external packages for detail.
This is the default libwww HTML parser based on a simple callback scheme into the application. It also contains code for generating HTML.
Libwww can use the Expat XML parser to handle XML. This requires that the expat parser is available, see the instructions on how to interact with external packages for detail
Database access can for example be used to handle logging etc.
Libwww can use MySQL for various types of logging etc. This requires that the mysql client library is available, see the instructions on how to interact with external packages for detail