Libwww is an early
World Wide Web
The World Wide Web (WWW or simply the Web) is an information system that enables Content (media), content sharing over the Internet through user-friendly ways meant to appeal to users beyond Information technology, IT specialists and hobbyis ...
software library
In computing, a library is a collection of resources that can be leveraged during software development to implement a computer program. Commonly, a library consists of executable code such as compiled functions and classes, or a library can ...
providing core functions for
web browser
A web browser, often shortened to browser, is an application for accessing websites. When a user requests a web page from a particular website, the browser retrieves its files from a web server and then displays the page on the user's scr ...
s, implementing
HTML
Hypertext Markup Language (HTML) is the standard markup language for documents designed to be displayed in a web browser. It defines the content and structure of web content. It is often assisted by technologies such as Cascading Style Sheets ( ...
,
HTTP
HTTP (Hypertext Transfer Protocol) is an application layer protocol in the Internet protocol suite model for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web, wher ...
, and other technologies.
Tim Berners-Lee
Sir Timothy John Berners-Lee (born 8 June 1955), also known as TimBL, is an English computer scientist best known as the inventor of the World Wide Web, the HTML markup language, the URL system, and HTTP. He is a professorial research fellow a ...
, at the European Organization for Nuclear Research (
CERN
The European Organization for Nuclear Research, known as CERN (; ; ), is an intergovernmental organization that operates the largest particle physics laboratory in the world. Established in 1954, it is based in Meyrin, western suburb of Gene ...
), released libwww (then also called the Common Library) in late 1992, comprising reusable code from the first browsers (
WorldWideWeb
WorldWideWeb (later renamed Nexus to avoid confusion between the software and the World Wide Web) is the first web browser and web page editor. It was discontinued in 1994. It was the first WYSIWYG HTML editor.
The source code was released i ...
and
Line Mode Browser).
Libwww was relied upon by the then popular browser
Mosaic
A mosaic () is a pattern or image made of small regular or irregular pieces of colored stone, glass or ceramic, held in place by plaster/Mortar (masonry), mortar, and covering a surface. Mosaics are often used as floor and wall decoration, and ...
.
By 1997, interest in libwww declined, and the
World Wide Web Consortium
The World Wide Web Consortium (W3C) is the main international standards organization for the World Wide Web. Founded in 1994 by Tim Berners-Lee, the consortium is made up of member organizations that maintain full-time staff working together in ...
(W3C), which took over from CERN, reduced its commitment to the project.
Later, the purpose of libwww was redefined to be "a testbed for protocol experiments";
in that role it was maintained for the benefit of the W3C's
web standards-promoting browser
Amaya.
Active development of libwww stopped in 2000.
History
In 1991 and 1992,
Tim Berners-Lee
Sir Timothy John Berners-Lee (born 8 June 1955), also known as TimBL, is an English computer scientist best known as the inventor of the World Wide Web, the HTML markup language, the URL system, and HTTP. He is a professorial research fellow a ...
and a student at
CERN
The European Organization for Nuclear Research, known as CERN (; ; ), is an intergovernmental organization that operates the largest particle physics laboratory in the world. Established in 1954, it is based in Meyrin, western suburb of Gene ...
named
Jean-François Groff rewrote various components of the original
WorldWideWeb
WorldWideWeb (later renamed Nexus to avoid confusion between the software and the World Wide Web) is the first web browser and web page editor. It was discontinued in 1994. It was the first WYSIWYG HTML editor.
The source code was released i ...
browser for the
NeXTstep
NeXTSTEP is a discontinued object-oriented, multitasking operating system based on the Mach kernel and the UNIX-derived BSD. It was developed by NeXT, founded by Steve Jobs, in the late 1980s and early 1990s and was initially used for its ...
operating system
An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ...
in
portable C code, in order to demonstrate the potential of the
World Wide Web
The World Wide Web (WWW or simply the Web) is an information system that enables Content (media), content sharing over the Internet through user-friendly ways meant to appeal to users beyond Information technology, IT specialists and hobbyis ...
.
In the beginning, libwww was referred to as the ''Common Library'' and was not available as a separate product.
Before becoming generally available, libwww was integrated in the
CERN program library (CERNLIB). In July 1992 the library was ported to
DECnet. In the May 1993 World Wide Web Newsletter Berners-Lee announced that the Common Library was now called libwww and was licensed as
public domain
The public domain (PD) consists of all the creative work to which no Exclusive exclusive intellectual property rights apply. Those rights may have expired, been forfeited, expressly Waiver, waived, or may be inapplicable. Because no one holds ...
to encourage the development of
web browsers.
He initially considered releasing the software under the
GNU General Public License
The GNU General Public Licenses (GNU GPL or simply GPL) are a series of widely used free software licenses, or ''copyleft'' licenses, that guarantee end users the freedom to run, study, share, or modify the software. The GPL was the first ...
, rather than into the public domain, but decided against it due to concerns that large corporations such as
IBM
International Business Machines Corporation (using the trademark IBM), nicknamed Big Blue, is an American Multinational corporation, multinational technology company headquartered in Armonk, New York, and present in over 175 countries. It is ...
would be deterred from using it by the restrictions of the GPL.
The rapid early development of the library caused
Robert Cailliau problems when integrating it into his
MacWWW browser.
From February 1994 to July 1999 (versions 2.17 to 5.2.8),
Henrik Frystyk Nielsen was responsible for libwww, first as a graduate student at CERN and later at the
World Wide Web Consortium
The World Wide Web Consortium (W3C) is the main international standards organization for the World Wide Web. Founded in 1994 by Tim Berners-Lee, the consortium is made up of member organizations that maintain full-time staff working together in ...
(W3C).
On 21 March 1995, with the release of version 3.0, CERN transferred responsibility for libwww to the W3C.
From 1995 onwards, the
Line Mode Browser was no longer released separately, but part of the libwww package.
On 2 March 1997, Nielsen announced that Libwww 5.1 was expected to be the last release.
Later that year, on 24 Dec 1997, Nielsen put out an unsuccessful call for another party outside W3C to take over maintenance of the library.
Nielsen left the W3C in July 1999, and the project was thereafter headed by José Kahan as the only W3C employee involved with the project.
On 2 September 2003 the W3C (re-)stated that development had stopped, citing a lack of resources.
On 29 January 2004, the W3C once again confirmed that it would not continue development, and was seeking
open source community maintainers.
The first (and only) "community supported maintenance release" was made in 2005, after a gap of 3 years.
After a further lapse of 12 years, a security patch was released in 2017.
Features
In 2003, Kahan claimed that "libwww is the only library that has a full implementation of the HTTP specification, including caching and pipelining."
Libwww supports following
protocols:
*
file
*
FTP
The File Transfer Protocol (FTP) is a standard communication protocol used for the transfer of computer files from a server to a client on a computer network. FTP is built on a client–server model architecture using separate control and dat ...
*
Gopher
Pocket gophers, commonly referred to simply as gophers, are burrowing rodents of the family Geomyidae. The roughly 41 speciesSearch results for "Geomyidae" on thASM Mammal Diversity Database are all endemic to North and Central America. They ar ...
*
HTTP
HTTP (Hypertext Transfer Protocol) is an application layer protocol in the Internet protocol suite model for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web, wher ...
1.1 with a Persistent Cache Manager,
pipelining
*
NNTP
*
Telnet
*
WAIS
Other features include:
*
TLS and SSL can be used through
OpenSSL.
*
gzip
gzip is a file format and a software application used for file compression and decompression. The program was created by Jean-loup Gailly and Mark Adler as a free software replacement for the compress program used in early Unix systems, and ...
compression and decompression through
zlib
zlib ( or "zeta-lib", ) is a software library used for data compression as well as a data format. zlib was written by Jean-loup Gailly and Mark Adler and is an abstraction of the DEFLATE compression algorithm used in their gzip file compre ...
*a
HTML
Hypertext Markup Language (HTML) is the standard markup language for documents designed to be displayed in a web browser. It defines the content and structure of web content. It is often assisted by technologies such as Cascading Style Sheets ( ...
,
RDF,
SGML
The Standard Generalized Markup Language (SGML; International Organization for Standardization, ISO 8879:1986) is a standard for defining generalized markup languages for documents. ISO 8879 Annex A.1 states that generalized markup is "based on t ...
and
XML
Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing data. It defines a set of rules for encoding electronic document, documents in a format that is both human-readable and Machine-r ...
parser
Parsing, syntax analysis, or syntactic analysis is a process of analyzing a string of symbols, either in natural language, computer languages or data structures, conforming to the rules of a formal grammar by breaking it into parts. The term '' ...
and a
style sheet manager
*an integration of a
SQL database (using the
MySQL
MySQL () is an Open-source software, open-source relational database management system (RDBMS). Its name is a combination of "My", the name of co-founder Michael Widenius's daughter My, and "SQL", the acronym for Structured Query Language. A rel ...
server) for e.g.
web crawler
Web crawler, sometimes called a spider or spiderbot and often shortened to crawler, is an Internet bot that systematically browses the World Wide Web and that is typically operated by search engines for the purpose of Web indexing (''web spider ...
s
Libwww supports
plug-ins.
Applications using libwww
It has been used for applications of varying sizes, including web browsers, editors, Internet bots, and batch tools. Pluggable modules provided with libwww add support for HTTP/1.1 with caching, pipelining, POST, Digest Authentication, and deflate.
The W3C created the
Arena web browser as a testbed and testing tool for
HTML3,
Cascading Style Sheets (CSS),
Portable Network Graphics
Portable Network Graphics (PNG, officially pronounced , colloquially pronounced ) is a raster graphics, raster-graphics file graphics file format, format that supports lossless data compression. PNG was developed as an improved, non-patented ...
(PNG) and libwww, among other technologies. Arena was later replaced in that role by
Amaya.
According to a survey conducted in September 2003, at least 19 applications used libwww.
*
Agora
The agora (; , romanized: ', meaning "market" in Modern Greek) was a central public space in ancient Ancient Greece, Greek polis, city-states. The literal meaning of the word "agora" is "gathering place" or "assembly". The agora was the center ...
*Arena
*Amaya
*
Cello
The violoncello ( , ), commonly abbreviated as cello ( ), is a middle pitched bowed (sometimes pizzicato, plucked and occasionally col legno, hit) string instrument of the violin family. Its four strings are usually intonation (music), tuned i ...
*
CERN httpd server
*
Cygwin
*
Distributed Oceanographic Data Systems with the
OPeNDAP
*GRIF Symposia, a
HTML editor
An HTML editor is a program used for editing HTML, the markup of a web page. Although the HTML markup in a web page can be controlled with any text editor, specialized HTML editors can offer convenience, added functionality, and organisation. Fo ...
*
Lynx
A lynx ( ; : lynx or lynxes) is any of the four wikt:extant, extant species (the Canada lynx, Iberian lynx, Eurasian lynx and the bobcat) within the medium-sized wild Felidae, cat genus ''Lynx''. The name originated in Middle Engl ...
*
MacWWW
*
Mosaic
A mosaic () is a pattern or image made of small regular or irregular pieces of colored stone, glass or ceramic, held in place by plaster/Mortar (masonry), mortar, and covering a surface. Mosaics are often used as floor and wall decoration, and ...
*
Robot Operating System
Robot Operating System (ROS or ros) is an Open-source software, open-source robotics middleware suite. Although ROS is not an operating system (OS) but a set of software frameworks for robot software software development, development, it provide ...
(ROS)
*TkWeb
*
tkWWW
*
WorldWideWeb
WorldWideWeb (later renamed Nexus to avoid confusion between the software and the World Wide Web) is the first web browser and web page editor. It was discontinued in 1994. It was the first WYSIWYG HTML editor.
The source code was released i ...
(later ''Nexus'')
Integrated applications in libwww are:
*Command Line Tool, an application which shows how to use libwww to build simple batch mode tools to access the Web.
*
Line Mode Browser, a Spartan web browser.
*Webbot, a simple application showing how to use libwww to build robots.
*Mini Server, a small application showing how to implement a server or a proxy using libwww.
Criticism
The developers of
libcurl have criticised libwww as being not as
portable, not
thread-safe and lacking several
HTTP authentication types. Neither
libcurl nor libwww are lightweight enough for some projects.
See also
*
Library for WWW in Perl
*
cURL
References
External links
*
libwww hackerspresented on the ''Mosaic and the Web'' conference in Chicago
{{W3C standards
Application programming interfaces
C (programming language) libraries
Cross-platform free software
Free FTP clients
Free software programmed in C
Free web crawlers
Hypertext Transfer Protocol clients
Software using the W3C Software Notice and License
CERN software