libwww (Library
World Wide Web) は、
Unix系およびWindows環境で動作する、高度にモジュール化された
クライアントサイドのウェブAPIであり、そのAPIの
リファレンス実装としても知られています。この
ライブラリは、ウェブブラウザ、エディタ、
インターネットボット、バッチツールなど、多種多様なアプリケーションに利用されてきました。
libwwwの機能と特徴
libwwwは、HTTP/1.1の完全なサポート(キャッシング、パイプライン処理、POST、Digest認証、deflate圧縮など)に加え、
プラグインによる機能拡張が可能です。これにより、様々なプロトコルやデータ形式に対応できます。
主な機能は以下の通りです。
- - 対応プロトコル: ローカルファイル、FTP、Gopher、HTTP 1.1(永続的キャッシュとパイプライン処理)、NNTP、Telnet、WAIS
- - その他の機能:
- OpenSSLによるTLS/SSLサポート
- zlibによるgzip圧縮・解凍
- HTML、RDF、SGML、XMLの構文解析
-
SQLデータベース(
MySQL)連携
-
プラグインによる機能拡張
歴史
1991年から1992年にかけて、
ティム・バーナーズ=リーとCERNの学生ジャン=フランソワ・グロフは、
World Wide Webの可能性を示すため、最初のブラウザであるWorldWideWeb(NeXTstep向け)のコンポーネントを
C言語で書き直しました。当初、この
ライブラリは「Common Library」と呼ばれ、独立したソフトウェアではありませんでした。その後、CERN program library (CERNLIB)に組み込まれ、1992年7月には
DECnetに移植されました。
1993年5月、バーナーズ=リーはウェブブラウザ開発を促進するため、「Common Library」を「libwww」と改名し、
パブリックドメインで公開すると発表しました。当初は
GNU General Public Licenseでの公開を検討していましたが、大企業での利用を考慮し、
パブリックドメインでの公開となりました。開発が急ピッチで行われたため、ロバート・カイリューがMacWWWに組み込もうとした際に問題が発生しました。
1994年11月25日、バージョン2.17からヘンリク・F・ニールセンがlibwwwの責任者となり、1995年3月21日、バージョン3.0のリリースとともに、CERNがlibwwwの責任を
World Wide Web Consortium (W3C)に移譲しました。1995年以降、
Line Mode Browserはlibwwwのパッケージの一部として提供されるようになりました。
W3Cは、HTML3/CSS/PNGなどの標準やlibwwwの機能の評価・実験ツールとして、ウェブブラウザ「Arena」を開発しました。その後、「Arena」は「
Amaya」に置き換えられました。2003年9月2日、W3Cはリソース不足を理由に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: ウェブアクセス用のバッチツール
- - Line Mode Browser
- - Webbot: libwwwを使用したボットのサンプル
- - Mini Server: libwwwを使用したサーバ/プロキシのサンプル
批判
libcurlの開発者からは、libwwwは移植性が低く、スレッドセーフではない、いくつかのHTTP認証方式を実装していないという批判がありました。また、libcurlと同様に、libwwwもプロジェクトによっては重すぎるという指摘もあります。
libwwwの役割
libwwwは、ウェブ技術の初期段階において、プロトコルに関する実験のプラットフォームとしての役割を果たし、同時に、車輪の再発明を防ぐための共通
ライブラリとしての役割も果たしました。その後のウェブ技術の発展に大きく貢献しました。
libwwwは、後にlibcurlというより高機能な
ライブラリに置き換えられました。現在では、libcurlがウェブクライアント
ライブラリの標準として広く利用されています。
この
ライブラリは、ウェブ技術の黎明期を支えた重要な遺産であり、その歴史的意義は非常に大きいと言えるでしょう。