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
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 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
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 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 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 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(); }