W3C home > Mailing lists > Public > www-lib@w3.org > January to March 1999

New tiny, very rudimentary web browser

From: Henrik Frystyk Nielsen <frystyk@w3.org>
Date: Sun, 07 Feb 1999 14:18:33 -0500
Message-Id: <>
To: www-lib@w3.org

It all started by trying to make a new "tiny" web browser and see how small
it could get using plain libwww. This caused some rearrangements and other
stuff which is listed below and which you also can find at


and get from cvs as described in


The result is that when I compile stripped on linux, the tiny browser which
contains the following:

	* Full HTTP/1.1 implementation except
		- authentication
		- persistent caching
		- redirection

	* Fully event based with support for multiple
	  simultaneous downloads and user input

	* A rudimentary HTML parser without a renderer
	  (presents parsed HTML both no layout)

	* A rudimentary user interface similar to the line mode browser.
	  (you select a link by typing a number)

is just less than 200K. Note that this is *NOT* a new GUI browser or
anything like that - it is an attempt to see how small a somewhat
functional browser can get using libwww. The current number, however,
includes a *huge* amount of libwww debug messages compiled in and without
any further optimization. If these messages are taken out and things are
looked at more carefully, then I think a browser can be made very small.


* Added the tiny application which is a minimalist browser with support for
HTML and HTTP only

* For some reason HText_registerBuildCallback wasn't ever written

* Synchronized the various hash tables in libwww and made then tunable in
wwwsys.h. This makes it easier to build a small libwww, for example with
less memory requirements than the normal build. Also fixed the hash
generator in HTBind so that it can handle suffic insentive searches

* Selected the include files more carefully to avoid unnecessary linking to
modules that are not directly used

* Moved the subclasses of the basic HTFWriter stream out to a new module
called HTFSave as this often involves a lot of stuff that doesn't (or
shouldn't be included if only the basic file writer stream is needed.

* Made the default 'save and execute' stream in HTFormat a variable that
can be set as not as it was hard-coded. This allows applications to
register their own save and execute stream for example for calling external

* Added the default HTSaveLocally and HTSaveAndExecute streams to the
default initialization of libwww (based on profiles)

* Removed the suffix bindings from the code and added them to the local
file set of interfaces as this doens't really belong in the core

* Updated HTTP to use the more normal DEBUG define and not HTTP_DUMP for
enabling saving requests and responses asis to wwwhttp.out

* Added HTFSave to makefile

* Updated the windows DLL to reflect the changes. You can get the updated
msvc make files at



Henrik Frystyk Nielsen,
World Wide Web Consortium
Received on Sunday, 7 February 1999 14:18:38 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:33:49 UTC