CompressionStream et DecompressionStream exposent une entrée accessible en
écriture et une sortie accessible en lecture.
| Format | Jeton |
|---|---|
| Gzip | gzip |
| Deflate encapsulé dans zlib | deflate |
| Deflate brut | deflate-raw |
| Brotli | brotli |
| Zstandard | zstd |
Brotli et Zstandard sont des extensions d’Elide à l’ensemble de formats standard
des navigateurs. La correspondance des formats est sensible à la casse ; une
valeur inconnue lève une TypeError.
async function collect(stream, input) {
const writer = stream.writable.getWriter();
const reader = stream.readable.getReader();
const chunks = [];
const reading = (async () => {
while (true) {
const { value, done } = await reader.read();
if (done) break;
chunks.push(value);
}
})();
await writer.write(input);
await writer.close();
await reading;
const size = chunks.reduce((total, chunk) => total + chunk.byteLength, 0);
const output = new Uint8Array(size);
let offset = 0;
for (const chunk of chunks) {
output.set(chunk, offset);
offset += chunk.byteLength;
}
return output;
}
const input = new TextEncoder().encode("hello");
const compressed = await collect(new CompressionStream("gzip"), input);
const restored = await collect(new DecompressionStream("gzip"), compressed);Les entrées doivent être des valeurs BufferSource. Des données compressées
malformées ou incomplètes provoquent le rejet de la transformation. La
décompression applique aussi des limites de sécurité de l’hôte en cas de sortie
excessive.
Pour les API à callbacks et orientées Buffer, consultez node:zlib.
Reference
Status: Full · Not measured · since 1.1.0
Exports
| Export | Kind | Status | Notes |
|---|---|---|---|
CompressionStream | class | Full | readable, writable |
DecompressionStream | class | Full | readable, writable |