macOS 11.0(Big Sur)、iOS 14 から Apple Archive Framework が使えるようになった。
Apple Archive Framework では Apple によって開発された 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 を使ってみた。
引数パラメータ解析や、エラー処理を独自に実装しなくて良いし、オプション引数も簡単に扱えるので、非常に良い。