# block-iterator

> Transform input into equally-sized blocks of output

Latest version **1.1.2** (published 2026-01-15) · MIT license · 0 weekly downloads

## Install

```sh
npm install block-iterator
pnpm add block-iterator
yarn add block-iterator
bun add block-iterator
```

## Health

**Score 55/100 (C)** — status: stable.

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

## Facts

| | |
|---|---|
| Version | 1.1.2 |
| Published | 2026-01-15 |
| First published | 2022-11-03 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 7.5 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 2 |
| Author | ThaUnknown |
| Maintainers | thaunknown |
| Keywords | stream, block, chunk, size, asyncIterator, iterator |

## Links

- npm: https://www.npmjs.com/package/block-iterator
- Repository: https://github.com/ThaUnknown/block-iterator
- Homepage: https://github.com/ThaUnknown/block-iterator#readme
- Issues: https://github.com/ThaUnknown/block-iterator/issues
- npm.io page: https://npm.io/package/block-iterator

## Alternatives

- [byte-size](https://npm.io/package/byte-size.md) — 2.1M weekly downloads
- [speed-limiter](https://npm.io/package/speed-limiter.md) — 16.0K weekly downloads
- [@powersync/node](https://npm.io/package/@powersync/node.md) — 10.9K weekly downloads
- [@ledgerhq/coin-cardano](https://npm.io/package/@ledgerhq/coin-cardano.md) — 1.0K weekly downloads
- [@jayesol/jayeson.lib.streamfinder](https://npm.io/package/@jayesol/jayeson.lib.streamfinder.md) — 1.0K weekly downloads

## Recent versions

- 1.1.2 (latest) — 2026-01-15
- 1.1.1 — 2022-11-25
- 1.1.0 — 2022-11-23
- 1.0.1 — 2022-11-06
- 1.0.0 — 2022-11-03

## README

# block-iterator

## Transform input into equally-sized chunks as output.

A majorly simplified version of [block-stream2](https://www.npmjs.com/package/block-stream2). Dependency free and very fast.

Works with Uint8Arrays, Node Buffers, Arrays and Strings!

## Usage

``` js
import blockIterator from 'block-iterator'
import { Readable } from 'streamx'

const stream = fs.createReadStream(__dirname + '/letters.txt')

const asyncIterator = blockIterator(stream, 16, { zeroPadding: true })
const stream = Readable.from(asyncIterator)

stream.pipe(process.stdout)

// or

for await (const letters of blockIterator(stream, { size: 16, zeroPadding: true })) { // top level await
  console.log(letters)
}
```
Yields:
```
cat cag car cet
ceg cer cit cig
cir cot cog cor
cut cug cur dat
dag dar det deg
der dit dig dir
dot dog dor dut
dug dur fat fag
far fet feg fer
fit fig fir fot
fog for fut fug
fur\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
```

# Methods

``` js
import blockIterator from 'block-iterator'
```

## const b = blockIterator(opts)
## const b = blockIterator(size, opts)

Create a new async iterator `b` that outputs chunks of length `size` or
`opts.size`.

When `opts.zeroPadding` is false, do not zero-pad the last chunk.

# Install

With [npm](https://npmjs.org) do:

```
npm install block-iterator
```

# License

MIT

---
_Source: https://npm.io/package/block-iterator · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
