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 String", onde cada caractere da string representa um byte do conteúdo binário.
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
aZstd.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á utilizadoZstd.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 emdest
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 String", onde cada caractere da string representa um byte do conteúdo binário.
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
aZstd.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á utilizadoZstd.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 String", onde cada caractere da string representa um byte do conteúdo binário.
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 emdest
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 String", onde cada caractere da string representa um byte do conteúdo binário.
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(); }