Apple Archive フレームワークを使って LZFSE の CLI ツールを作った

macOS 11.0(Big Sur)、iOS 14 から Apple Archive Framework が使えるようになった。

Apple Archive Framework

Apple Archive Framework では Apple によって開発された LZFSE アルゴリズムの圧縮・展開ができる。

LZFSE

試しにこの Apple Archive Framework を使って LZFSE の展開・圧縮の CLI ツールを作ってみた。
(Big Sur 標準の aa コマンドで LZFSE の圧縮・展開ができるが、それのミニバージョンという感じ。)

ツールの使い方は

これでファイルを圧縮できる。(.lzfse ファイルができる)

$ ./lzfse-cli --encode -i alice29.txt

ファイルの展開。

$ ./lzfse-cli --decode -i alice29.txt.lzfse

フォルダの圧縮もできる。(.aar ができる)

$ ./lzfse-cli --encode -i dir

フォルダの展開。

$ ./lzfse-cli --decode -i dir.aar

CLI ツールを作るにあたって、コマンドの引数解析には Swift Argument Parser を使ってみた。

引数パラメータ解析や、エラー処理を独自に実装しなくて良いし、オプション引数も簡単に扱えるので、非常に良い。