zstandard
#Meta_Open_Source
zstd
圧縮アルゴリズム
https://gyazo.com/0c6693ce22092997eaa60a43a032ba7b
https://ja.wikipedia.org/wiki/Zstandard
Zstandard (zstd) は、圧縮・展開が速いことを特徴とする可逆圧縮アルゴリズムである[2]。またC言語で書かれた前述のアルゴリズムのリファレンス実装の名前でもある。Meta Platforms, Inc.に所属しているYann Colletによって2015年から開発されている。
この実装のバージョン1.0.0は2016年8月31日に自由ソフトウェアとして公開された[3][4]。2018年10月に RFC 8478 で規格化され、2021年2月に RFC 8878 に更新された。メディアタイプは application/zstd [5]。英語発音はズィースタンダード(zee standard)[5]。
使い方
ほとんどのLinuxディストリビュージョンの場合標準で入ってる
圧縮
% zstd nantoka.txt
強圧縮
% zstd -19 nantoka.txt
最強圧縮
% zstd --ultra -22 nantoka.txt
かなり遅く、メモリを食う
この用途ならxzの方がいいけど
長距離マッチング
% zstd --long nantoka.txt
https://news.ycombinator.com/item?id=16228217
最大2GBの距離までマッチングする
2GiB:--long=31
1GiB:--long=30
512MiB:--long=29
256MiB:--long=28
128MiB:--long=27(--long でのデフォルト)
展開時にもメモリを食う代わりに結構な圧縮率になる
並列
% -T<スレッド数>
long+最強+並列
% zstd --ultra -22 --long=31 -T16 input
zip
% tar -c directory | zstd -o file
展開
% zstd -d input.zstd
inputという名前に出力される
longで圧縮した場合、展開時にもlongを使う必要がある
圧縮率
Cosense Code Cloneで井戸端をクローンしたあとtarにかけたもの
% zstd villagepump.tar -19 --long=31 -T4
villagepump.tar : 2.28% ( 2.66 GiB => 62.0 MiB, villagepump.tar.zst)
まあ極端だが...