Claybirdの日記: .xz/.lzma
ここしばらくTar32.DLLに関して作業中である(作者氏には連絡済み)。
最近GNU TarがLZMA方式の圧縮に対応したらしいので調べてみた。
どうやらフォーマットとして.lzmaと.xzがあるらしい。しかも.xzは.lzmaの後継だとか。
よく知らないけど、.lzmaってそんなにメジャーだったのかな。
間違ってるところとかあれば突っ込みをお願いします。コメント等もご遠慮なくどうぞ。
---
・tukaani.orgはXZ UtilsとLZMA Utilsを作っている
- XZ Utilsは.xzを吐く
- LZMA Utilsは.lzmaを吐く
・.lzmaを吐くコードにはLZMA Utils以外に本家LZMA SDK(7-zip.org)がある
・LZMA UtilsはXZ Utilsに移行した
・XZ Utilsは2009/7/1現在 ベータ版
- .xzフォーマット自体はほぼ安定状態(非ベータの意味か)にあるらしい(http://tukaani.org/xz/xz-file-format.txt)
- このフォーマットの仕様書は2009/01/29に公開された
・XZ Utilsは最初に安定版を出すときにコードをPublic Domainにする予定
- 現状はLGPL
・.lzmaは.xzとは違う形式
- 仕様書を見る限り、少なくともヘッダは違う
・http://www.gnu.org/software/tar/tar.html#releasesによると
- GNU Tarは1.20から.lzmaをサポートしていた
- GNU Tarは1.22から.xzをサポートした
- 1.21でショートカットとしてオプション"-J"に.lzmaを割り当て
- 1.22で"-J"は.xzに割り当て変更
・今後.xzを(.lzmaの置き換えとして)主流にする予定
- これから作成するときは.lzmaよりは.xzにした方がいいのか?(疑問)
・「LZMA方式(もしくはその派生)」は.lzmaと.xzの両方で使われている圧縮アルゴリズム
- .7zでも使われる
- .lzma/.xzにとっての「LZMA方式」は、.zip/.gzにとっての「Deflate方式」と同じような位置づけか?(確証無し)
・Cygwin上で試したところ、ツールの「xz」は.lzmaを展開できるようだ
- 置き換えを狙う以上、互換性は保ったということか?(確証無し)
---
.xz/.lzmaのファイル自体がまだそれほど出回っていない上に、.xz自体登場してまだ間もない形式なので、様子見になりそうな感じ。
こちらのコードで書くならXZ Utilsのベータが取れるのを待つ感じになるかもしれない。うまくいけばXZ Utilsが.lzma/.xzの両方をサポートしてくれるかもしれない。
.xz/.lzma More ログイン