armadilloは、Javaで書かれたアーカイビング処理ライブラリです。
アーカイビングを処理するAPIと、それらを統合するインターフェイスを提供します。
アーカイブの種類と対応状況です。
種類 | 読み込み | 作成 | 説明 |
---|---|---|---|
LHA(lzh) | △ | △ | 独自実装。圧縮方式はLH5,LH0,LHDのみ。最低限 の性能。 |
ZIP | ○ | ○ | ヘッダの処理は独自実装。圧縮部分は標準APIを使用。 日本語 ファイル名はデフォルトでOSエンコーディングを使用。 |
TAR | ○ | ○ | 独自実装。ustar形式のみ対応。 |
TAR+GZ | ○ | ○ | TARと標準API(GZIP I/O)の組み合わせ。 |
Pure Java なので、ファイルの属性は一部(更新時刻)を除いて復元できません。アクセス権や所有者の情報などは復元されません。
armadilloは、外部ライブラリを使用していませんので、JRE(Java1.4以上)さえあれば動作します。
現時点では、あまり複雑なことは組み込まないようにしています。互換性よりも、単純さを優先しています。
開発時点でEOLを迎えていない最古のJavaバージョンである1.4以上の環境で利用できます。最近では、Eclipse3.xを動 作させるためにJava1.4がインストールされていることが多いので、これで十分と考え ています。
実装面では、assertや New I/O API を多用しています。
いつになるかは分かりませんが、広く使われているアーカイブ形式には対応していきます。特に、bzip2と7zipあたりを。(難易度 高そうです。)
独自アーカイブを作る枠組みなども作ってみようかと思っています。
開発環境を提供していただいている SF.jp、Javaを支えている方々、参考にさせていただいた書籍やサイトの著者の皆様、ありがとうございます。