Class: ZstdCompressor

@nginstack/engine/lib/compress/ZstdCompressor~ ZstdCompressor


new ZstdCompressor( [options])

Classe que disponibiliza métodos de compressão da biblioteca Zstandard.

Esta classe é significativamente mais eficiente que os métodos estáticos da classe Zstd quando várias operações de compressão são realizadas em sequência ou quando é utilizado um dicionário de dados.

Parameters:
Name Type Argument Description
options Object <optional>

Opções de compressão.

Properties
Name Type Argument Description
level number <optional>

Nível de compressão. Deve ser informado um número no intervalo de Zstd.minCompressionLevel a Zstd.maxCompressionLevel, sendo maior a taxa compressão quanto mais alto for o nível, ao custo de um processamento mais elevado. Caso não seja informado, será utilizado Zstd.defaultCompressionLevel.

dictionary Uint8Array | ArrayBuffer | string <optional>

Dicionário que deve ser utilizado na compressão dos dados com o objetivo de aumentar a taxa de compressão de conteúdos pequenos. O dicionário informado será requerido na descompressão dos dados retornados por este método. A perda do dicionário inviabiliza a descompressão dos dados.

Methods


compress(data [, options])

Comprime os dados informados utilizando o modo "single step" do Zstd. Utilize esta função para dados que possam ser representados totalmente em memória sem sobrecarregar o servidor. Para volumes maiores de dados, utilize #compressStream.

Esta função trata as strings como se fossem uma sequência de bytes no formato conhecido por Binary Strings.

Parameters:
Name Type Argument Description
data string | Uint8Array | ArrayBuffer

Dados que serão comprimidos.

options Object <optional>

Opções de compressão.

Properties
Name Type Argument Description
resultType string <optional>

O tipo do resultado gerado por esta função. Os valores possíveis são "uint8array", "arraybuffer" e "binarystring". Caso não seja informado, será retornado um Uint8Array.

Returns:

Dados comprimidos no formato Zstd.

Type
Uint8Array | ArrayBuffer | string
Example
const ZstdCompressor = require('@nginstack/engine/lib/compress/ZstdCompressor.js');
const data = 'Hello World';
const compressor = new ZstdCompressor();
const compressedData = compressor.compress(data);

compressStream(src, dest)

Comprime os dados contidos no arquivo ou stream src e grava em dest utilizando o modo "streaming" do Zstd.

Esta função trata as strings como se fossem uma sequência de bytes no formato conhecido por Binary Strings.

Parameters:
Name Type Description
src File | MemoryStream | Uint8Array | ArrayBuffer | string

Dados que serão comprimidos.

dest File | MemoryStream

Arquivo ou stream onde serão gravados os dados comprimidos.

Example
const ZstdCompressor = require('@nginstack/engine/lib/compress/ZstdCompressor.js');
const File = require('@nginstack/engine/lib/io/File.js');

const compressor = new ZstdCompressor();
const src = new File(fileName);
const dest = File.createTempFile();
try {
  compressor.compressStream(src, dest);
} finally {
  src.close();
  dest.close();
}