libwww
Original author(s) | Tim Berners-Lee, Jean-Francois Groff[1] |
---|---|
Developer(s) | Henrik Frystyk Nielsen |
Initial release | 1.0, November 1992[2] |
Stable release |
5.4.1[3]
/ 4 December 2006 |
Development status | Inactive |
Written in | C |
Operating system | FreeBSD,[4] Solaris,[4] Linux,[4] Mac OS X,[4] Microsoft Windows[4] |
Type | API for Internet applications |
License | W3C Software Notice and License |
Website | www.w3.org/Library/ |
libwww (Library World Wide Web) is a modular client-side web API for Unix and Windows. It is also the name of the reference implementation of the libwww API.
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 purpose of libwww is to serve as a testbed for protocol experiments[5] so that software developers do not have to "reinvent the wheel".[6]
libcurl is considered to be a modern replacement for libwww.[7]
History
In 1991 and 1992, Tim Berners-Lee and a student at CERN named Jean-Francois Groff rewrote various components of the original WorldWideWeb browser for the NeXTstep operating system in portable C code, in order to demonstrate the potential of the World Wide Web.[8] In the beginning libwww was referred to as the Common Library and was not available as a separate product.[9] Before becoming generally available, libwww was integrated in the CERN program library (CERNLIB).[10] In July 1992 the library was ported to DECnet.[11] 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 to encourage the development of web browsers.[12] He initially considered releasing the software under the GNU General Public License, rather than into the public domain, but decided against it due to concerns that large corporations such as IBM would be deterred from using it by the restrictions of the GPL.[13][14] The rapid early development of the library caused Robert Cailliau problems when integrating it into his MacWWW browser.[15]
From 25 November 1994 (version 2.17) Henrik Frystyk Nielsen was responsible for libwww.[16] On 21 March 1995, with the release of version 3.0, CERN put the full responsibility for libwww on the World Wide Web Consortium (W3C).[2] From 1995 onwards, the Line Mode Browser was no longer released separately, but part of the libwww package.[17]
The W3C created the Arena web browser as a testbed and testing tool for HTML3, CSS, PNG and other features like the libwww,[18] but after beta 3, Arena was replaced by Amaya.[19] On 2 September 2003 the W3C stopped development of the library due a lack of resources, with the expectation that any further development would come from the open source community.[16][20]
Features
Libwww supports following protocols:
- file[21]
- FTP[21]
- Gopher[21]
- HTTP 1.1 with a Persistent Cache Manager,[21] pipelining[2]
- NNTP[21]
- Telnet[21]
- WAIS[21]
Other features include:
- TLS and SSL can be used through OpenSSL.[22]
- gzip compression and decompression through zlib[23]
- a HTML,[24][25] RDF,[26] SGML[27] and XML[26] parser and a style sheet manager[28]
- an integration of a SQL database (using the MySQL) for i.e. web crawlers[29]
Applications using libwww
Over 19 applications have used libwww.[30]
- Agora[31]
- Arena[32][33]
- Amaya[32][33][34]
- Cello[35]
- CERN httpd server[33]
- Cygwin[36][37]
- Distributed Oceanographic Data Systems with the OPeNDAP[38][39]
- GRIF Symposia, a HTML editor[40][41]
- Lynx[2][33]
- MacWWW[42]
- Mosaic[2][15][33]
- ROS (Robot Operating System)[5]
- TkWeb[43]
- tkWWW[44]
- WorldWideWeb (later Nexus)[45][46]
Integrated applications in libwww are:
- Command Line Tool, an application which shows how to use libwww for building simple batch mode tools for accessing the Web.[6][47]
- Line Mode Browser, a Spartan web browser.[48]
- Webbot, a simple application showing how to use libwww for building robots.[6][49]
- Mini Server, a small application showing how to implement a server or a proxy using libwww.[6]
Criticism
The developers of libcurl have criticised libwww as being not as portable, not thread-safe and lacking several HTTP authentication types.[50] Neither libcurl nor libwww are lightweight enough for some projects.[51]
See also
References
- ↑ "WEB HISTORY DAY: PIONEERING SOFTWARE AND SITES". The World Wide Web History Project. Retrieved 28 March 2010.
- 1 2 3 4 5 Kahan, José (7 June 2002). "Change History of libwww". World Wide Web Consortium. Retrieved 30 May 2010.
- ↑ Bancroft, Vic (4 December 2006). "Changes with libwww 5.4.1". World Wide Web Consortium. Retrieved 30 May 2010.
- 1 2 3 4 5 "W3C libwww libraries". PhysioNet. Cambridge, MA: University of São Paulo. 19 March 2008. Retrieved 30 May 2010.
- 1 2 "libwww". ROS. Retrieved 2 June 2010.
- 1 2 3 4 5 Nielsen, Henrik Frystyk (14 May 1998). "W3C Reference Library". World Wide Web Consortium. Retrieved 27 June 2010.
- ↑ Moody, George B. (14 July 2010). "WFDB Programmer's Guide: E. Sources". Retrieved 4 August 2010.
- ↑ Kesan, Jay; Rajiv Shah (2003). "Deconstructing Code" (PDF). Yale Journal of Law & Technology. 6: 291.
- ↑ Berners-Lee, Tim (3 November 1992). "Common Library". World Wide Web Consortium. Retrieved 3 June 2010.
- ↑ "How the web began". CERN. 2008. Retrieved 25 July 2010.
- ↑ Crémel, Nicole (5 April 2001). "A Little History of the World Wide Web". CERN. Retrieved 2 June 2010.
- ↑ Berners-Lee, Tim (May 1993). "May World-Wide Web News". World Wide Web Consortium. Retrieved 7 June 2010.
- ↑ "History of Libwww" (PDF). GoverningWithCode.org. p. 3.
- ↑ Berners-Lee, Tim. "Policy". World Wide Web Consortium. Retrieved 1 September 2010.
- 1 2 Petrie, Charles; Cailliau, Robert (November 1997). "Interview Robert Cailliau on the WWW Proposal: "How It Really Happened."". Institute of Electrical and Electronics Engineers. Archived from the original on 6 January 2011. Retrieved 18 August 2010.
- 1 2 Kahan, José (2 September 2003). "Libwww - the W3C Protocol Library". World Wide Web Consortium. Retrieved 2 June 2010.
- ↑ Kreutzmann, Dr. Helge (6 January 2010). "WWW-Browsers for Linux". Retrieved 3 June 2010.
- ↑ Lie, Håkon Wium (15 June 1996). "Arena: Frequently Answered Questions". World Wide Web Consortium. Retrieved 2 June 2010.
- ↑ Lafon, Yves; Lie, Håkon Wium (16 September 1996). "Welcome to Arena beta-3". World Wide Web Consortium. Retrieved 2 June 2010.
- ↑ Kahan, José (2 September 2003). "Future of Libwww Survey". World Wide Web Consortium. Retrieved 2 June 2010.
- 1 2 3 4 5 6 7 Nielsen, Henrik Frystyk (12 July 2000). "W3C Library Packages and Interfaces". World Wide Web Consortium. Retrieved 27 June 2010.
- ↑ "W3C Sample Code Library libwww SSL Transport Wrapper". World Wide Web Consortium. 9 June 2000. Retrieved 28 June 2010.
- ↑ "W3C Sample Code Library libwww ZLib Streams". World Wide Web Consortium. 24 May 1998. Retrieved 28 June 2010.
- ↑ "Simple HTML Parser With Text Object Converter". World Wide Web Consortium. 6 January 1999. Retrieved 28 June 2010.
- ↑ "Declaration of W3C Sample Code HTML MODULE". World Wide Web Consortium. 22 February 1999. Retrieved 28 June 2010.
- 1 2 "Declaration of W3C Sample Code XML/RDF Module". World Wide Web Consortium. 18 April 1999. Retrieved 28 June 2010.
- ↑ "SGML Parser". World Wide Web Consortium. 2 April 1999. Retrieved 28 June 2010.
- ↑ "Stylesheet Manager". World Wide Web Consortium. 6 January 1999. Retrieved 28 June 2010.
- ↑ "W3C Sample Code Library libwww SQL Interface". World Wide Web Consortium. 24 May 1998. Retrieved 28 June 2010.
- ↑ Kahan, José (29 January 2004). "Results of the future of libwww survey". World Wide Web Consortium. Retrieved 2 June 2010.
- ↑ Secret, Arthur (12 November 1996). "Agora". World Wide Web Consortium. Archived from the original on 6 June 1997. Retrieved 20 June 2010.
- 1 2 Nielsen, Henrik Frystyk (7 June 2002). "Libwww Hackers". World Wide Web Consortium. Retrieved 29 May 2010.
- 1 2 3 4 5 Kahan, José (5 August 1999). "Why Libwww?". Retrieved 15 June 2010.
- ↑ Quint, Vincent (10 December 2009). "Amaya Release history". World Wide Web Consortium. Retrieved 29 May 2010.
- ↑ "HTTP Request fields". Protocols. World Wide Web Consortium. 3 May 1994. Retrieved 28 March 2010.
- ↑ Nielsen, Henrik Frystyk (1 December 1998). "www-lib". Yahoo! Groups. Archived from the original on 18 April 2001. Retrieved 15 June 2010.
- ↑ Kahan, José (5 August 1999). "Libwww - the W3C Sample Code Library". World Wide Web Consortium. Retrieved 15 June 2010.
- ↑ Gallagher, James (10 May 2002). "libwww replacement". OPeNDAP. Retrieved 1 June 2010.
- ↑ Gallagher, James (19 June 2002). "libwww v versus libcurl". OPeNDAP. Retrieved 1 June 2010.
- ↑ Paoli, Jean (11–14 December 1995). "Rules for extending a WWW client: The Symposia API". World Wide Web Consortium. Retrieved 15 August 2010.
- ↑ Luotonen, Ari. "Ari Luotonen". World Wide Web Consortium. Retrieved 15 August 2010.
- ↑ Berners-Lee, Tim (3 November 1992). "Macintosh Browser". World Wide Web Consortium. Retrieved 2 June 2010.
- ↑ Ball, Steve (10–13 July 1996). "SurfIt! - A WWW Browser" (PostScript). Proceedings of the Fourth USENIX Tcl/Tk Workshop. Monterey, CA: USENIX. Retrieved 28 November 2010.
- ↑ Wang, Joseph (1 May 1993). "tkWWW Version 0.7 alpha". Retrieved 16 November 2010.
- ↑ "WorldWideWeb Source Files". World Wide Web Consortium. Retrieved 21 June 2010.
- ↑ "Readme". evolt.org. Retrieved 5 July 2010.
- ↑ Nielsen, Henrik Frystyk (4 May 1999). "WebCon - the Libwww Command Line Tool". World Wide Web Consortium. Retrieved 27 June 2010.
- ↑ Krol, Ed, The Whole Internet Catalog User's Guide & Catalog, O'Reilly & Associates, Inc., 1992, Third Printing, February 1993, p. 227.
- ↑ Nielsen, Henrik Frystyk (4 May 1999). "Webbot - the Libwww Robot". World Wide Web Consortium. Retrieved 27 June 2010.
- ↑ Stenberg, Daniel (1 May 2010). "Notes About Libwww compared to libcurl". Haxx. Retrieved 1 June 2010.
- ↑ Smith, Timothy B. (11 September 2007). "Simple HTTP Client without 'libcurl' or 'libwww'". μClinux. Retrieved 1 June 2010.
External links
- Official website
- libwww hackers
- The architecture of libwww
- The historic architecture of libwww presented on the Mosaic and the Web conference in Chicago