scskkd -- scheme で書かれた SKK dictionary server Introduction 「scskkd」は、scheme で書かれた SKK 辞書サーバです。scheme 処理系の一 つである Gauche 用です。 このソフトウェアは、無償、無保証、無制限にて公開します。 (つまり、パブリックドメインソフトウェア (PDS) と同等ということ。) Requirements Gauche : version 0.7.2 以降であれば動くと思われます Install scskkd を適宜な場所にコピーして下さい。必要に応じて skktodbm、 skktocdb 等もコピーして下さい。 実行時には gosh プログラムに PATH が通っている必要があります。 必要であればスクリプトの1行目を修正して gosh のフルパスを直接指定して 下さい。 skk 辞書は skktodbm を用いて利用するデータベース形式へ変換しておいて 下さい。 Files - scskkd : SKK dictionary server 本体。 - skktodbm : SKK 辞書を scskkd が扱えるデータベースファイルへ変換する ためのプログラム。 - skktocdb : SKK 辞書を cdbmake への入力形式で出力します。 - testskksv : SKK dictionary server の動作確認、及び簡単な速度計測を 行ないます。 Options - scskkd [OPTIONS]... -4 --ipv4=HOST PORT : サーバが bind する IPv4 のアドレスを指定 します。 -6 --ipv6=HOST PORT : サーバが bind する IPv6 のアドレスを指定 します。利用するにはシステム及び Gauche が IPv6 に対応している必要があります。 -u --unix=PATH : サーバが bind する UNIX ドメインソケット のパスを指定します。 -d --dbm=DBM-TYPE PATH : 辞書として用いるデータベースを指定します。 DBM-TYPE には辞書形式を、PATH にはデータ ベースへのファイルパスを指定します。 必ず指定する必要があります。 複数指定いすることもできます。その場合、 先に指定した辞書から順に検索し、見付かっ たエントリを検索順でマージします。 -s --single : 単一プロセスで動作するよう指示します。 複数クライアントが接続していても全て一つ のプロセスで処理します。 -m --multi : 複数プロセスで動作するよう指示します。 クライアントの接続を待ち受けるプロセス一 つと、各クライアント毎に一つずつプロセス を生成します。 -t --thread : 複数スレッドで動作するよう指示します。 --multi モードのスレッド版です。 -i --inetd : inetd や tcpserver 等から起動することを指 示します。 -h --help : ヘルプメッセージを表示します。 * -4/-6 の HOST には IP address またはホスト名を指定できます。 * -4/-6 の PORT にはポート番号、またはサービス名 (/etc/service に記 述してあるもの) を指定できます。 * -s/-m/-t/-i オプションの指定は排他です。同時に複数指定することはで きません。 いずれも指定しなかった場合は -s が指定されたものとみなします。 * -t オプションの利用には Gauche がスレッドをサポートするようビルド されていなければなりません。 * -s/-m/t オプションを指定した場合は -4/-6/-u オプションのいずれかを 指定する必要があります。 -4/-6/-u オプションは複数指定することもできます。この場合、全ての アドレスでクライアントの接続を待ち受けます。 * daemontools 等から起動し、multilog 等でログ採取することを想定して いるため、ログメッセージは標準エラー出力に書き出されます。 * シグナル SIGHUP を送ることで辞書を読み直します。このとき接続中のク ライアントは切断されません。 - skktodbm DBM-TYPE : 出力するデータベース形式を指定します。 DBM-FILE : 出力するデータベースのパスを指定します。 * SKK 辞書は標準入力から読み込みます。 - skktocdb * SKK 辞書は標準入力から読み込みます。 * 標準出力へ cdbmake 形式の出力を行ないます。 - testskksv [-4 HOST PORT] [-6 HOST PORT] [-u PATH] -4 HOST PORT : HOST、PORT で指定されたサーバへ IPv4 で接続します。 -6 HOST PORT : HOST、PORT で指定されたサーバへ IPv6 で接続します。 -u PATH : PATH で指定された UNIX ドメインソケットで動作して いるサーバへ接続します。 * サーバへ送信する検索リクエストは標準入力から読み込みます。。 1行を1単語とみなし、リクエストを送信します。 * connect してから最初のリクエストが返却されるまでの時間 (startup)、 リクエストを送信してから受信するまでの時間 (request) を測定します。 全ての検索について5回繰り返し、最大と最小を除いた3回について平均を とります。 Operation mode scskkd は、single process、multi process、inetd の3種類から動作モード を選択できます。 それぞれのモードには以下のような特徴があります。 - single process : -s/--single オプションにより指定できます。 クライアント接続待ち、クライアントからのリクエス ト処理を全て一つのプロセスで処理するモード。 サーバー以外のプロセスを生成しないため、マシンリ ソースをある程度節約できます。 ただし、システムによっては multi process モード と比較すると若干パフォーマンスが低下する場合があ ります。 - multi process : -m/--multi オプションにより指定できます。 クライアントの接続待ちをするメインプロセスと、各 クライアント毎にリクエストを処理するプロセスを生 成する、複数プロセスで動作するモード。 クライアント毎にプロセスを生成するため、リソース を多少消費しますが、パフォーマンスの低下は最低限 に抑えられます。 - multi thread : -t/--thread オプションにより指定できます。 multi process モードのスレッド版です。 プロセスの代わりにスレッドを利用するため、multi process モードよりはリソースの消費は少なくなりま す。 - inetd : -i/--inetd オプションにより指定できます。 inetd や tcpserver 等の meta-server から起動する 場合のモードです。 tcpserver で詳細なアクセスコントロールを行ないた い場合等に利用できます。 DBM Type - scskkd 及び skktodbm は、辞書データベースの指定時にデータベース形式 を指定します。 Gauche の dbm モジュールのインターフェースを実装したもののなかから 選択できます。 以下の形式が利用できます。利用するためには、システム及び Gauche が サポートしている必要があります。 各モジュールの詳細については Gauche のマニュアル、または各モジュー ルのマニュアルを参照して下さい。 これ以外のモジュールも利用できるかもしれません。 - fsdbm : ファイルシステム dbm (dbm.fsdbm) Gauche 標準ライブラリ - gdbm : GDBM ライブラリ (dbm.gdbm) Gauche 標準ライブラリ - ndbm : NDBM ライブラリ (dbm.ndbm) Gauche 標準ライブラリ - odbm : DBM ライブラリ (dbm.odbm) Gauche 標準ライブラリ - cdb : CDB ライブラリ (dbm.cdb) Links - Gauche: - SKK OpenLab: Misc - SKK 辞書は SKK OpenLab 等から入手して下さい。 - UNIX domain socket に対応した SKK client があるのかどうか知りません。 $Id: README.ja.txt,v 1.5 2003/12/21 11:52:10 hos Exp $