dzzip

dzzip

Lookupに必要な部分だけでっち上げたdictzipの偽者です。

dzzip

dictに含まれる、dictzipで圧縮したファイルから部分的にデータを伸長・抽出するプログラムです。 端的に言えばLookupに必要な部分だけでっち上げたdictzipの偽者です。 一応圧縮にも対応しています。

背景

Lookupのndicエージェントは、dictで使用される辞書 (dict辞書) をサポートしています。 dict辞書はインデックスと本文テキストが別ファイルに分離されており、本文テキストについては、dictに含まれるdictzipで圧縮することができます。 dictzipは圧縮したファイルの一部からテキストを抽出することも可能で、Lookupからdictzipで圧縮したテキストにアクセスする際に利用しいています。

ただし、最近のdictや、それが依存するlibmaaは、ビルドの際にbmakemk-configureに依存しており、Windows環境でビルドするのが大変になっています。 なので、Lookupで必要なdictzipの部分に限定した、CygwinやMinGW環境でビルドしやすいツールを作ってみました。

for your download

dzzip-1.0.0.tar.gz

必要なソフトウェア

zlib
大抵の環境には何もしなくても入っていると思います。

インストール

通常の autotools を利用したプログラムと同様です。

使い方

Lookupからdictzipの代わりとして使う

.emacs等に

(setq ndic-dictzip-program "dzzip")

のように記述してください。 パスが通っていない場合はパス名を含めてください。

制限・不具合

非対応のオプション

dictzipにあるオプションのうち、-p, -P, -t, -lについては実装されていない為、エラーで終了します。

新設されたオプション

-Cオプションで、圧縮前のチャンクの大きさを指定できます。 dictzip圧縮の仕様上、上限は65535バイトになります。 下限ついては仕様上の制限はありませんが、dzzipでは1024バイトにしています。 dictzip圧縮では、圧縮後のチャンクの大きさも65535バイトまでに制限されます。 ですので、圧縮効率があまりに悪いデータに対して大きなチャンクを指定すると、理論上は圧縮に失敗する可能性があります。 ただし、テキストファイルでこの問題が起きることはまずないと思います。

書式の異なるオプション

-Dオプションについては、引数はとりません。

動作の異なるオプション

-D, -vオプションについては、出力される内容はdictzipとは異なります。

-s, -S, -e, -E, -cオプションのいずれか指定されると、, -kオプションも暗黙のうちに指定されます。

dictzip圧縮との差異

dzzipによる圧縮では圧縮ファイルに圧縮前のファイル名は収納されません。

前述の通り、圧縮時にチャンクの大きさを変更できます。dictzipでは58315バイトに固定されています。

ライセンス

プログラムのライセンスは修正BSDライセンスに従います。 同梱のCOPYINGファイルを参照して下さい。

更新履歴

2019/08/11 公開。


Kazuhiro's blog
http://ikazuhiro.s206.xrea.com/staticpages/index.php/dzzip