Class: Zstd

@nginstack/engine/lib/compress/Zstd~ Zstd


new Zstd()

Classe que disponibiliza métodos estáticos de compressão e descompressão da biblioteca Zstandard, sendo o seu uso recomendado para operações eventuais. Para a compressão ou descompressão de múltiplos arquivos, em especial quando são utilizados dicionários de compressão, utilize as classes ZstdCompressor e ZstdDecompressor.

Não construa instâncias de Zstd. Ao invés, utilize os métodos e propriedades estáticas desta classe.

Members


<static> defaultCompressionLevel :number

Nível de compressão padrão do Zstd caso não seja informado um outro nível específico.

Type:
  • number

<static> maxCompressionLevel :number

Maior nível de compressão aceito na versão atual do algoritmo Zstd.

Type:
  • number

<static> minCompressionLevel :number

Menor nível de compressão aceito na versão atual do algoritmo Zstd.

Type:
  • number

Methods


<static> 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 ZStd.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
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.

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 Zstd = require('@nginstack/engine/lib/compress/Zstd.js');
const data = 'Hello World';
const compressedData = Zstd.compress(data);

<static> compressStream(src, dest [, options])

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 Argument 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.

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.

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

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

<static> decompress(data [, options])

Descomprime os dados informados no modo "single step" do Zstd. Utilize esta função com dados que possam ser representados totalmente em memória sem sobrecarregar o servidor. Para volumes maiores de dados, utilize ZStd.decompressStream.

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 descomprimidos.

options Object <optional>

Opções de descompressão.

Properties
Name Type Argument Description
dictionary Uint8Array | ArrayBuffer | string <optional>

Dicionário que foi utilizado na compressão dos dados.

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 descomprimidos.

Type
Uint8Array | ArrayBuffer | string
Example
const Zstd = require('@nginstack/engine/lib/compress/Zstd.js');
const data = 'A not very long text';
const compressData = Zstd.compress(data);
Zstd.decompress(compressData); // => 'A not very long text'

<static> decompressStream(src, dest [, options])

Descomprime 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 Argument Description
src File | MemoryStream | Uint8Array | ArrayBuffer | string

Dados que serão descomprimidos.

dest File | MemoryStream

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

options Object <optional>

Opções de descompressão.

Properties
Name Type Argument Description
dictionary Uint8Array | ArrayBuffer | string <optional>

Dicionário que foi utilizado na compressão dos dados.

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

const src = new File(compressedFileName);
const dest = File.createTempFile();
try {
  Zstd.decompressStream(src, dest);
} finally {
  src.close();
  dest.close();
}