# node:zlib

> Node's Deflate, Gzip, Brotli, Zstandard, and CRC32 module, plus node:zlib/iter.

`node:zlib` matches Node, including Brotli, Zstandard, and `crc32`. For Web Streams, use
[Compression Streams](https://elide.help/docs/api-whatwg-compression).

## node:zlib/iter

`node:zlib/iter` is an Elide extension. It exports `compress*` and `decompress*` factories (`Gzip`, `Deflate`,
`DeflateRaw`, `Brotli`, `Zstd`, each with a `Sync` form) and the aliases `gzip`, `gunzip`, `deflate`, `inflate`,
`deflateRaw`, and `inflateRaw`. Each factory's `.transform(asyncIterable)` yields batches of byte chunks.

```javascript
import { gzip } from "node:zlib/iter";

async function* input() {
  yield new TextEncoder().encode("hello");
}

for await (const batch of gzip().transform(input())) {
  for (const chunk of batch) {
    // compressed bytes
  }
}
```
