Skip to content

Release notes

Eugene Lazutkin edited this page May 22, 2026 · 4 revisions

Release notes

2.0.0 — 2026-05-22

ESM ("type": "module") — require() consumers must switch to import (or await import() from CJS).

Functional API. new Fork(...) from 1.x becomes fork(...) — no new, no class.

New primitives. route(outputs, options) (per-chunk single-target dispatch via options.pick) and filter(outputs, options) (per-chunk subset broadcast via options.predicates) alongside fork. Each returns a sink that gates upstream backpressure on the receiving downstreams' write completions.

Picker helpers under stream-fork/utils/: pickRoundRobin, pickByHash, pickByKey, pickFirstMatch. Compose with route for the common dispatch shapes.

Web Streams flavor at stream-fork/web. Same three primitives wrapping WritableStream. The Web fork is a backpressure-preserving generalization of ReadableStream.tee() to N outputs — unlike tee, no per-branch buffering.

Node 22+.

1.0.5 — technical release

No functional changes; metadata only. Safe to skip.

1.0.4 — bugfix

  • Errors from downstream streams are now forwarded correctly. Thanks to dbubovych.

1.0.3 — technical release

Republished to support Node 14.

1.0.2 — Node 6 workaround

Switched from _final() to the 'finish' event so the package would work on Node 6.

1.0.1 — improved documentation

Documentation polish; no behavior change.

1.0.0 — initial release

First public release. A single Fork class — a Writable that broadcast every chunk to every output, with proper backpressure handling.

Clone this wiki locally