ebiggers / libdeflate

Heavily optimized library for DEFLATE/zlib/gzip compression and decompression
MIT License
1.01k stars 167 forks source link

compression & decompression usage from browser to libdeflate #375

Closed truongan07 closed 3 months ago

truongan07 commented 4 months ago

I have a tiny code of javascript works on browser and i want to send compressed/decompressed result to libdeflate to get compatibility ?

(async () => {
  const compression = async item => {
    const compression = new CompressionStream('deflate'), writer = compression.writable.getWriter();

      writer.write(item);
      writer.close();

      return await new Response(compression.readable).arrayBuffer();
    };

  const decompression = async compress => {
    const decompression = new DecompressionStream('deflate'), writer = decompression.writable.getWriter();

      writer.write(compress);
      writer.close();

      return await new Response(decompression.readable).arrayBuffer();
  };

  const text = 'this is text';
  const encoder = new TextEncoder;
  const compress = await compression(encoder.encode(text));

  console.log('compress = ', compress);

  // or i want to send compress from browser to libdeflate for decompression ?
  const decompress = await decompression(compress);
  const decoder = new TextDecoder;

  console.log('decompress = ', decompress);
  console.log('text = ', decoder.decode(decompress));
})();