# Compatibilidade APIs Node.js - Zlib

O módulo `zlib` no Node.js fornece um conjunto de utilitários de compressão e descompressão para manipular dados em vários formatos. Ele é construído sobre a biblioteca zlib, que é amplamente utilizada para compressão de dados, e permite que os desenvolvedores comprimam e descomprimam fluxos de dados de forma eficiente, tornando-se essencial para otimizar o armazenamento e a transmissão de rede.

```javascript
/**
 * An example of using Node.js Zlib API in an Azion Functions.
 * Support:
 * - Partially supported (Extended by library `browserify-zlib`)
 * @module runtime-apis/nodejs/zlib/main
 * @example
 * // Execute with Azion Bundler:
 * npx edge-functions build
 *
 */
import zlib from "node:zlib";

/**
 * An example of using the Node.js Zlib API in an Azion Functions.
 * @param {*} event
 * @returns {Promise<Response>}
 */
const main = async (event) => {
  const body = event.body ?? "Hello, World!";
  const output = zlib.gzipSync(body);

  // decode
  const decom = zlib.gunzipSync(Buffer.from(output)).toString();
  console.log(decom);

  return new Response(output.toString("base64"), {
    headers: {
      "Content-Type": "application/octet-stream",
      "Content-Encoding": "gzip",
    },
  });
};

export default main;
```