Zstandard
強力で高速な圧縮のための C ライブラリ
高速リアルタイムの実現 オープン ソース C ライブラリによる強力な圧縮と解凍
Zstandard は、C アプリケーション内で高い圧縮率を実現するための強力で高速なアルゴリズムを提供するオープン ソースの C 圧縮ライブラリです。このライブラリは非常に幅広い速度を提供し、デュアル BSD および GPLv2 ライセンスの下で利用できます。このライブラリは、小さなデータの圧縮に非常に役立つ辞書圧縮モードをサポートしています。
Zstandard ライブラリは、zlib レベルおよびより優れた圧縮率でのリアルタイム圧縮シナリオを対象としています。ライブラリは、1 から 22 までの通常の圧縮レベルをサポートしています。スムーズな作業にはより多くのメモリが必要になるため、レベル 20 以上は注意して使用する必要があることに注意してください。
API は非常に安定しており、十分に文書化されており、取り扱いが非常に簡単です。圧縮と解凍、ストリーミング圧縮と解凍、ディクショナリ ヘルパー関数、フレーム サイジング、より優れたメモリ管理に関連するいくつかの重要な機能のサポートが含まれています。このライブラリは、圧縮と解凍、バッファーレスおよび同期内部ストリーミング関数、バッファーレス ストリーミング圧縮、および解凍 (同期モード) の高度な機能もサポートしています。
Zstandard 入門
Zstandard の推奨されるインストール方法は GitHub からです。スムーズにインストールするには、次のコマンドを使用してください。
GitHub 経由で Zstandard ライブラリをインストールする
gh repo clone facebook/zstd
C API による圧縮と解凍
オープン ソース ライブラリの Zstandard には、圧縮と解凍のための重要な関数がいくつか含まれています。このライブラリは、メモリ内の圧縮および解凍関数を提供します。速度と比率の設定を拡張するいくつかの圧縮レベルを提供します。 1 つのコマンドで、1 つのファイルだけでなく、複数のファイルも簡単に圧縮または解凍できます。今回のリリースにより、解凍速度がさらに向上しました。
C API によるマルチスレッド圧縮および解凍
シングルスレッドの圧縮ライブラリがいくつかあります。つまり、ユーザーは別のソフトウェアを信頼するか、独自のマルチスレッド コードを記述する必要があります。オープン ソース ライブラリの Zstandard には、圧縮操作で C コマンドを使用して複数のスレッドを活用できる機能が含まれています。素晴らしい点は、圧縮プロセスをマルチスレッド API に切り替えることができ、解凍プロセスに特別な処理が必要ないことです。
小さなデータの圧縮と解凍
通常、少量のデータを圧縮または解凍することは常に非常に困難であることがわかっています。これは、ほとんどの圧縮プログラムが直面する非常に一般的な問題です。 Zstandard ライブラリは、ユーザーが選択したタイプのデータを選択できるトレーニング モードを提供することで、これを改善しました。したがって、プログラムを調整するためにトレーニング モジュールで少量のデータを使用するサンプルはほとんどありません。トレーニング モジュールの結果はディクショナリと呼ばれるファイルに保存されます。このファイルは、将来、圧縮および解凍の前に使用されます。圧縮アルゴリズムは、過去のデータと将来のデータを圧縮する方法から学習することが観察されています。このように辞書の概念を使用すると、小さなデータの圧縮率と解凍率が大幅に改善されます。