Standard Tcl Library

Standard Tcl Library (以後俗称として広く知られる「Tcllib」と呼ぶことにします)は、 汎用に使える便利なルーチンをTcl言語だけで実装した拡張パッケージの集合体です。 Tcl/Tk本体に近いオープンソースの開発陣により、 バージョンアップの度に新しいパッケージがどんどん追加されています。 ここではそれらのうち、便利で使いやすそうな次のパッケージについて、 ちょっくらつついてみた結果を紹介しています。

base64 Base64エンコーダ・デコーダ
mime, smtp SMTPによる電子メールの送信
pop3 POPによる電子メールの受信
ftp FTPによるファイルの受送信
csv カンマ区切りじゃ
uri URIトークンの切り出し
fileutil ディレクトリパスの再帰検索などのファイル処理
cmdline オプションの解析
ncgi CGIユーティリティ
ftpd FTPデーモン
smtpd SMTPデーモン
struct スタック
htmlparse HTML文書の構文解析
cksum, crc32, md5, sha1 メッセージ・ダイジェスト(ハッシュ値)の算出
rc4, blowfish, des, aes 共通鍵暗号化ルーチン
tar tarファイルの操作


対応環境

TcllibはTcl言語だけで書かれているため、 それらが提供するところの元の機能をOSがサポートしている限り、 WindowsPC、Macintosh、UNIXを問わず同じように使うことができます。 現在のバージョンは1.14で、このバージョンはTcl/Tk 8.4以降が必要です。
このページでは、次の環境で試してみた結果を紹介しています。

OSTcl/TkTcllib
MS-WindowsXP8.5a1 (ActiveTcl)1.9
MS-Windows78.5.8 (ActiveTcl)1.12
Linux 2.2.148.4a21.1
Solaris 2.68.4a11.2
Solaris 2.88.4a31.3

Tcllibは先述の通り新しい機能がどんどん増えているので、 できるだけ新しい版を入手されるとよいでしょう。


ダウンロードとインストール

Tcllibの総本山はTcl Developer Exchangeの このページです。 またオープンソースの開発サイトである、 こちらからも入手できます。

インストール手順ですが、 圧縮アーカイブを展開すると、tcllib-1.*というディレクトリができるので、UNIXの場合は

% sh configure --prefix=/opt2/local
% make
% make install
と打つだけでインストールされます。 --prefixのデフォルトはもちろん/usr/localです。 makeでHTML文書を作ろうとしますが、このときプログラム「tclsh」 を呼び出そうとする場合があるので、 tclsh8.5などにtclshという名前でリンクしておくとよいです。

Windowsの場合も簡単です。展開したディレクトリにある「installer.tcl」 をエクスプローラでダブルクリックすることで、 (Tkをインストールしている場合は)GUIのインストーラが起動され、 拡張子.tclに「関連付け」されているTcl/Tk処理系の中にファイルがコピーされて、 全自動でインストールが完了します。

CMD> tclsh85
> package require base64
2.3
などと、Tcllibに含まれるパッケージ(PACKAGESというテキストファイルに一覧があります) のどれかを打って、バージョン番号(2.3)が出てくればセットアップは完了です。 「tcllib」「Tcllib」という名前のパッケージは機能的に存在しないので、注意してくださいね。
なお、Windowsの場合はActiveTclのbin\teacup.exe コマンドを使って、 Teapot Serverからネットワーク経由で最新版をインストールすることも可能です。 tcllibはActiveTclに最初から同梱というわけではなく、 teacup.exeを使う必要があるのに注意が必要ですね。 なお、このサイトでご紹介している拡張ライブラリの内、 ActiveTclに最初から含まれておらず、 teacup.exeでネットワーク・インストールが可能なものは、 tkdnd、Tix、xml/dom/xslt(TclXMLとその一族)、Tktable、そしてOratclです。

拡張レビュー分室 top
(first uploaded 2001/01/04 last updated 2012/05/27, MISUMI URANO - KOUKEN HEIJIMA)