Libwww

libwww (Library World Wide Web) は、Unix系およびWindows向けの高度にモジュール化されたクライアントサイドウェブAPIであり、そのAPIのリファレンス実装の名前でもある。

ウェブブラウザ/エディタ、インターネットボット、バッチツールなど各種アプリケーションに利用可能。完全なHTTP/1.1の、パイプライニング、、Digest認証、deflateなど、libwwwにはプラグイン可能なモジュールがある。

libwwwには、プロトコルに関する実験の叩き台としての役割と、車輪の再発明を防ぐ役割がある。

libcurlはlibwwwの後継とみなされている。

 歴史 
1991年から1992年、ティム・バーナーズ＝リーとCERNにいた学生ジャン＝フランソワ・グロフは World Wide Web の可能性を示すため、オペレーティングシステムNeXTstep向けに書かれた最初のブラウザ WorldWideWeb の各種コンポーネントを移植性の高いC言語で書き直す作業を行った。当初libwwwは Common Library と呼ばれ、独立したソフトウェアとなってはいなかった。一般公開される前にlibwwwは CERN program library (CERNLIB) に組み込まれた。1992年7月、このライブラリはDECnetに移植された。1993年5月の World Wide Web Newsletter でバーナーズ＝リーは、ウェブブラウザ開発を促進するため Common Library をlibwwwと改称し、パブリックドメインで提供すると発表した。当初パブリックドメインではなく GNU General Public License で公開するつもりだったが、GPLにするとIBMのような大企業が利用をためらう可能性があると考え断念した。急いで開発したため、ロバート・カイリューがこれをMacWWWに組み込もうとしたときに問題が生じた。

1994年11月25日 (version 2.17) からがlibwwwの責任者となった。1995年3月21日、version 3.0 のリリースと共に、CERNが完全に手を引き World Wide Web Consortium (W3C) がlibwwwの全責任を負うことになった。1995年以降、Line Mode Browser が独立してリリースされることはなくなり、libwwwのパッケージの一部となった。

W3Cは、HTML3/CSS/PNGといった標準やlibwwwの提供する機能の叩き台兼評価ツールとしてというウェブブラウザを開発し、beta 3 リリース後にAmayaで置換した。2003年9月2日、W3Cはリソース不足からlibwwwの開発を停止し、その後の開発はオープンソース・コミュニティに期待するとした。

 機能と特徴 
libwwwは、以下の通信プロトコルをサポートしている。
 ローカルファイル（URIスキーム）
 FTP
 Gopher
 HTTP 1.1 （永続性キャッシュマネージャとパイプライニング）
 NNTP
 Telnet
 WAIS

他に以下の機能を有する。
 OpenSSLを使うことでTLSとSSLを利用可能。
 zlibを使うことでgzipの圧縮・解凍が可能。
 HTML、 RDF、SGML、XMLの構文解析器とスタイルシートマネージャ
 SQLデータベース (MySQL) との連携（クローラなどで利用）

libwwwは各種プラグインをサポートしている。

 libwww を利用しているアプリケーション 
19以上のアプリケーションがlibwwwを使用している（いた）。

 Agora
 Arena
 Amaya
 Cello
 CERN httpd サーバ
 Cygwin
 Distributed Oceanographic Data SystemsとOPeNDAP
 GRIF Symposia（HTMLエディタ）
 Lynx
 MacWWW
 Mosaic
 Robot Operating System
 TkWeb
 tkWWW
 WorldWideWeb（後の Nexus）

libwwwには次のアプリケーションが含まれている。
 Command Line Tool - ウェブアクセス用の単純なバッチツール。libwwwの使い方を示すためのアプリケーション。
 Line Mode BrowserKrol, Ed, The Whole Internet Catalog User's Guide & Catalog, O'Reilly & Associates, Inc., 1992, Third Printing, February 1993, p. 227.
 Webbot - libwwwを使ったボットの作り方を示すための単純なアプリケーション
 Mini Server - libwwwを使ったサーバまたはプロキシの作り方を示すための小さなアプリケーション

 批判 
libcurlの開発者らは、libwwwは移植性が低く、スレッドセーフではないし、HTTP認証方式のいくつかも実装していないと批判している。また、プロジェクトによってはlibcurlもlibwwwも重過ぎるという批判もある。

 脚注 

 関連項目 
 cURL

 外部リンク 

 libwww hackers
 The architecture of libwww
 Towards a Uniform Library of Common Code

Category:API
Category:ライブラリ (プログラミング)
Category:HTTP
Category:FTPクライアント
Category:オープンソースソフトウェア
Category:クロスプラットフォームのソフトウェア
Category:Cでプログラムされた自由ソフトウェア