(Translated by https://www.hiragana.jp/)
Zstandard - Wikipedia コンテンツにスキップ

Zstandard

出典しゅってん: フリー百科ひゃっか事典じてん『ウィキペディア(Wikipedia)』
Zstandard
作者さくしゃ Yann Collet
開発元かいはつもと Meta Platforms, Inc.
初版しょはん 2015ねん1がつ23にち (9ねんまえ) (2015-01-23)
最新さいしんばん
1.5.6[1] ウィキデータを編集 / 27 3がつ 2024
リポジトリ ウィキデータを編集
プログラミング
言語げんご
C言語げんご
対応たいおうOS クロスプラットホーム
プラットフォーム ポータブル
サポートじょうきょう 開発かいはつちゅう
種別しゅべつ データ圧縮あっしゅく
ライセンス さん条項じょうこうBSDライセンスGPLv2デュアルライセンス
公式こうしきサイト facebook.github.io/zstd/ ウィキデータを編集
テンプレートを表示ひょうじ
Zstandard
拡張子かくちょうし.zst
MIMEタイプapplication/zstd
種別しゅべつデータ圧縮あっしゅく
国際こくさい標準ひょうじゅんRFC 8878
オープン
フォーマット
Yes
ウェブサイトfacebook.github.io/zstd/

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]

特徴とくちょう

[編集へんしゅう]

Zstandardは、デフォルトの圧縮あっしゅくレベル3の場合ばあい現在げんざい主流しゅりゅうであるDeflate (ZIP, gzip) アルゴリズムとほぼおな圧縮あっしゅくりつだが、より高速こうそく圧縮あっしゅく解凍かいとうおこなえるように設計せっけいされている[2][6]

圧縮あっしゅくレベルはせいがわは1~22が指定してい可能かのうで、圧縮あっしゅくレベルをげると圧縮あっしゅくりつがり、幅広はばひろいレンジの圧縮あっしゅくりつ対応たいおうしている。Arch Linuxのパッケージ圧縮あっしゅくはZstandardを採用さいようしているが、圧縮あっしゅくレベル20を採用さいようしていて[7]xz比較ひかくしてサイズの増加ぞうかは0.8%にまり、解凍かいとうは14ばい高速こうそくである[8]圧縮あっしゅくレベルは-1以下いか存在そんざいし、コマンドラインばんでは --fast=# で指定していすることが可能かのうで、Zstandardの開発かいはつしゃによる調査ちょうさだと --fast=2 は QuickLZ や Snappy 相当そうとう、--fast=3 は LZO 相当そうとう、--fast=4 は LZ4 相当そうとうである[9]

Zstandardはおおきな検索けんさくまど辞書じしょしき圧縮あっしゅくアルゴリズム (LZ77) とエントロピー符号ふごう併用へいようしており、エントロピー符号ふごうステージで有限ゆうげん状態じょうたいエントロピー(FSE)のtANS英語えいごばん あるいはハフマン符号ふごう使用しようしている[10]。Zstandardの実装じっそう特徴とくちょうてきなのはエントロピー復号ふくごうぎゃく方向ほうこうからることである。

デフォルトでは利用りようしないが、並列へいれつ圧縮あっしゅくにも対応たいおうしていて、コマンドラインばんは-T#で指定していする。#に並列へいれつれ、0の場合ばあいはCPUのコアすうとなる[11]標準ひょうじゅんの Zstandard は並列へいれつ解凍かいとうには対応たいおうしていないが[12]、ファイルをチャンクサイズで分割ぶんかつして圧縮あっしゅく解凍かいとうする Parallel Zstandard (PZstandard) があり、こちらは並列へいれつ解凍かいとう対応たいおうしている[13]

コマンドラインプログラム

[編集へんしゅう]
  • zstd - メインプログラム
  • unzstd - zstd の解凍かいとうよう。zstd -d とおなじ。
  • zstdmt - 並列へいれつ圧縮あっしゅく。zstd -T0 とおなじ。[14]
  • zstdcat - zstd で圧縮あっしゅくされたファイルにたいして cat する。zstd -dcf とおなじ。
  • zstdless - zstd で圧縮あっしゅくされたファイルにたいして less する。[15]
  • zstdgrep - zstd で圧縮あっしゅくされたファイルにたいして grep する。[16]
  • pzstd - Parallel Zstandard 。ファイルをチャンクサイズで分割ぶんかつして並列へいれつ圧縮あっしゅく並列へいれつ解凍かいとうする。並列へいれつ解凍かいとうでなくてもいならば普通ふつうの zstd で解凍かいとうできる。[17]

C言語げんご実装じっそうされ、APIが提供ていきょうされている。それにたいして、様々さまざまなプログラミング言語げんごでのバインディングおよびさい実装じっそう存在そんざいする。[2]

ライセンス

[編集へんしゅう]

バージョン1.0.0から1.3.0までは、リファレンス実装じっそうBSDライセンスにてGitHub公開こうかいされていて、関連かんれんする特許とっきょ使用しようみとめる追加ついかライセンス[18]付属ふぞくしていた。

2017ねん8がつ21にちにリリースされたバージョン1.3.1 [19] から、この特許とっきょ条項じょうこう削除さくじょされ、ライセンスはさん条項じょうこうBSDとGPLv2のデュアルライセンスに変更へんこうされた[20]

利用りようれい

[編集へんしゅう]

Linuxカーネルには2017ねん11月(バージョン4.14)からZstandardがふくまれており、btrfsやsquashfsファイルシステムでの圧縮あっしゅく方法ほうほうとして利用りよう可能かのうとなっている。また、2020ねん10がつ(バージョン5.9)からカーネルイメージの圧縮あっしゅく方法ほうほうとして利用りよう可能かのうとなった。

FreeBSDカーネルには2017ねんからZstandardがふくまれており、コアダンプ(ユーザープログラムとカーネルパニックの両方りょうほう)の圧縮あっしゅくオプションとして利用りよう可能かのうとなっている。

GNU tar は2019ねん1がつ2にちにリリースされた 1.31 から対応たいおうしている。拡張子かくちょうしは .tar.zst もしくは .tzst 。bsdtar (libarchive) は2019ねん4がつ11にちにリリースされた 3.3.3 から対応たいおうしている。[21][22]

rsync では2020ねん6がつ19にちにリリースされた 3.2.0 から zlib 以外いがいに、Zstandard と LZ4対応たいおうした。[23]

Ubuntu 21.10[24]デフォルトとしてはUbuntu 18.04より[25])、Red Hat Enterprise Linux 9[26]Fedora 31[27]、2019ねん12月27にち以降いこうArch Linux[8]ひとしおおくのLinuxディストリビューションでデフォルトのパッケージ圧縮あっしゅく方式ほうしきとしてZstandardを利用りようしている。Ubuntuでは圧縮あっしゅくレベル19[25]、Arch Linuxでは圧縮あっしゅくレベル20[7]採用さいようしたが、xz圧縮あっしゅくレベル6にくらべて、Zstandardの圧縮あっしゅくレベル19では6%[25]圧縮あっしゅくレベル20では0.8%[8]パッケージのサイズが増加ぞうかするが、展開てんかい速度そくど格段かくだん高速こうそくになる[8]。Debian からフォークしている Ubuntu が先行せんこうしたかたちで、Debian がわの dpkg は2023ねん1がつ10日とおかに Zstandard に対応たいおうしたが[28]、Debian 12 現在げんざいつづき xz をデフォルトとしている。

Google Chrome 123(2024ねん3がつ19にちリリース)、Microsoft Edge 123、Mozilla Firefox 126 より、HTTP の Content-Encoding に zstd が使つかえる。[29][30]

参照さんしょう

[編集へんしゅう]

参考さんこう文献ぶんけん

[編集へんしゅう]
  1. ^ Release Zstandard v1.5.6 - Chrome Edition · facebook/zstd” (英語えいご). 27 3がつ 2024閲覧えつらん
  2. ^ a b c Zstandard - Real-time data compression algorithm”. facebook.github.io. 4 May 2024閲覧えつらん
  3. ^ Sergio De Simone, Facebook Open-Sources New Compression Algorithm Outperforming Zlib / InfoQ, Sep 02, 2016
  4. ^ “Life imitates satire: Facebook touts zlib killer just like Silicon Valley's Pied Piper”. The Register. (2016ねん8がつ31にち). http://www.theregister.co.uk/2016/08/31/facebook_open_source_database/ 2016ねん9がつ6にち閲覧えつらん 
  5. ^ a b RFC 8878
  6. ^ Smaller and faster data compression with Zstandard - Engineering at Meta
  7. ^ a b arch-dev-public RFC: (devtools) Changing default compression method to zstd
  8. ^ a b c d Arch Linux - News: Now using Zstandard instead of xz for package compression
  9. ^ Release Zstandard v1.3.4 - faster everything · facebook/zstd
  10. ^ https://github.com/facebook/zstd/blob/master/doc/zstd_compression_format.md#entropy-encoding
  11. ^ zstd(1) — Arch manual pages”. March 31, 2024閲覧えつらん
  12. ^ Multithreaded decompression · Issue #2470 · facebook/zstd - GitHub”. March 31, 2024閲覧えつらん
  13. ^ zstd/contrib/pzstd/README.md at v1.5.6 · facebook/zstd - GitHub”. March 31, 2024閲覧えつらん
  14. ^ zstdmt(1) — zstd — Debian bookworm — Debian Manpages”. manpages.debian.org. 4 May 2024閲覧えつらん
  15. ^ zstdless(1) — zstd — Debian bookworm — Debian Manpages”. manpages.debian.org. 4 May 2024閲覧えつらん
  16. ^ zstdgrep(1) — zstd — Debian bookworm — Debian Manpages”. manpages.debian.org. 4 May 2024閲覧えつらん
  17. ^ pzstd(1) — zstd — Debian bookworm — Debian Manpages”. manpages.debian.org. 4 May 2024閲覧えつらん
  18. ^ zstd/PATENTS "Additional Grant of Patent Rights Version 2", Facebook
  19. ^ "Zstd v1.3.1 release", GitHub
  20. ^ "New license", GitHub
  21. ^ tar-1.31 released stable
  22. ^ Release Feature and Security Release · libarchive/libarchive
  23. ^ NEWS for rsync 3.2.0 (19 Jun 2020) - NEWS for rsync
  24. ^ Hello zstd compressed .debs in Ubuntu! | Obsessed with reality
  25. ^ a b c zstd compression for packages - ubuntu devel
  26. ^ 22.1. Notable changes to software management - Considerations in adopting RHEL 9 Red Hat Enterprise Linux 9 | Red Hat Customer Portal”. Red Hat Customer Portal. 2 May 2024閲覧えつらん
  27. ^ Changes/Switch RPMs to zstd compression - Fedora Project Wiki”. fedoraproject.org. 2 May 2024閲覧えつらん
  28. ^ 1.21.18 : dpkg package : Debian”. Launchpad. 22 July 2023閲覧えつらん
  29. ^ Chrome 123 のしん機能きのう  |  Blog  |  Chrome for Developers”. May 4, 2024閲覧えつらん
  30. ^ Content-Encoding - HTTP”. May 4, 2024閲覧えつらん

外部がいぶリンク

[編集へんしゅう]