【Node.js24.x】Object::zstdCompressSync()メソッドの使い方
zstdCompressSyncメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
zstdCompressSyncメソッドは、Node.jsのzlibモジュールに属しており、Zstandard (zstd) 圧縮アルゴリズムを使用して、指定されたデータを同期的に圧縮するメソッドです。このメソッドは、入力としてBuffer、TypedArray、DataView、ArrayBuffer、または文字列を受け取り、Zstandard形式で圧縮されたデータを含む新しいBufferを返します。
Zstandardは高速かつ高い圧縮率を特徴とする新しい世代のリアルタイム圧縮アルゴリズムであり、大量のデータを効率的に圧縮する際に特に有効です。このメソッドを利用することで、ストレージの消費量を削減したり、ネットワークを介したデータ転送速度を向上させたりすることができます。例えば、ログデータやバックアップデータをファイルに保存する前や、APIで大きなJSONデータを送信する前に圧縮するといった用途が考えられます。
「同期的に」処理を実行するという点が重要です。これは、圧縮処理が完了するまでNode.jsのメインスレッドがブロックされ、他のJavaScriptコードの実行が一時停止することを意味します。そのため、非常に大きなデータを圧縮する際や、パフォーマンスが重要なWebサーバーなどの環境では、アプリケーションの応答性が低下する可能性があります。このような理由から、本番環境で大量のデータを扱う場合は、非同期版であるzstdCompressメソッドの使用を検討することが推奨されます。zstdCompressSyncは、簡単なスクリプトや起動時の処理など、メインスレッドのブロックが許容される状況での利用に適しています。
構文(syntax)
1const zstd = require('node:zstd'); // Zstandard圧縮モジュールを想定 2 3const inputBuffer = Buffer.from('This is a sample string to be compressed using Zstandard.'); 4const compressionOptions = { 5 level: 3 // 圧縮レベル (1-22, デフォルトは3) 6}; 7 8const compressedBuffer = zstd.zstdCompressSync(inputBuffer, compressionOptions); 9 10console.log('Original data length:', inputBuffer.length); 11console.log('Compressed data length:', compressedBuffer.length); 12console.log('Compressed data (hex):', compressedBuffer.toString('hex'));
引数(parameters)
buffer, opts
- buffer: Buffer: 圧縮するデータを含むバッファ
- opts: object: 圧縮オプションを指定するオブジェクト (省略可能)
戻り値(return)
Buffer
zstdCompressSync メソッドは、入力されたデータを Zstandard 形式で同期的に圧縮した結果を Buffer オブジェクトとして返します。