# node:zlib

O módulo `node:zlib` comprime e descomprime dados com os algoritmos Gzip, Deflate e Brotli, e o Node.js o constrói sobre a biblioteca zlib, como descreve a [documentação do zlib do Node.js](https://nodejs.org/api/zlib.html). No Azion Runtime, `import zlib from "node:zlib"` faz o build, e `zlib.constants` é um objeto, em uma function com deploy feito e com `azion dev`.

As funções de compressão não estão implementadas, por isso nada no módulo comprime dados. Cada uma lança um `Error` ou passa um `Error` ao seu callback, com a mesma mensagem em uma function com deploy feito e com `azion dev`.

Para comprimir dados em uma function, use a API Web `CompressionStream`, que funciona nos dois ambientes. Um stream `new CompressionStream('gzip')` comprime os dados, e um stream `new DecompressionStream('gzip')` os restaura. O construtor aceita `gzip`, `deflate` e `deflate-raw` e lança um `TypeError` para `br`. Para mais informações, consulte [Web APIs](/pt-br/documentacao/devtools/runtime/api-reference/javascript/).

---

## Métodos

A tabela lista cada função de compressão e o erro que ela produz:

| Chamada                         | Resultado                                                                   |
| ------------------------------- | --------------------------------------------------------------------------- |
| `zlib.gzipSync(data)`           | Lança `Error: [unenv] zlib.gzipSync is not implemented yet!`                |
| `zlib.deflateSync(data)`        | Lança `Error: [unenv] zlib.deflateSync is not implemented yet!`             |
| `zlib.deflateRawSync(data)`     | Lança `Error: [unenv] zlib.deflateRawSync is not implemented yet!`          |
| `zlib.brotliCompressSync(data)` | Lança `Error: [unenv] zlib.brotliCompressSync is not implemented yet!`      |
| `zlib.gzip(data, callback)`     | Chama `callback` com `Error: [unenv] zlib gzip compression not supported.`  |
| `zlib.createGzip()`             | Lança `Error: [unenv] zlib is not implemented yet! is not implemented yet!` |

---

## Recursos relacionados

- [APIs do Node.js](/pt-br/documentacao/devtools/runtime/node.md): Todos os módulos do Node.js que o Azion Runtime resolve e como cada um se comporta.
- [Web APIs](/pt-br/documentacao/devtools/runtime/api-reference/javascript.md): As Web APIs que uma function pode chamar, entre elas as APIs de stream.
- [Globais](/pt-br/documentacao/devtools/runtime/api-reference/azion-runtime-globals.md): Os objetos globais do Azion Runtime, que incluem `CompressionStream` e `DecompressionStream`.
- [Use APIs do Node.js com polyfills](/pt-br/documentacao/guias/desenvolvimento-de-aplicacoes/functions-e-runtime/use-polyfills.md): Como o build resolve APIs do Node.js por meio de polyfills, mostrado em um projeto JavaScript.
