MattiasBuelens/web-streams-polyfill
Last release: 3 weeks ago
Web Streams Polyfill provides JavaScript implementations of the Web Streams APIs based on the WHATWG spec reference implementation. It can be used as a ponyfill (adds stream classes without replacing globals) or as a polyfill (replaces native stream globals) to enable Web Streams in ES5/ES2015+ environments, including via Node modules or script tags.
Project status
- Actively maintained, with recent activity (latest upstream push on 2026-06-04) and a new version published shortly before (v4.3.0 on 2026-05-15).
- Update cadence appears steady but not frequent, roughly every 6 to 9 months based on v4.1.0 (2025-01-05), v4.2.0 (2025-08-17), and v4.3.0 (2026-05-15).
AI summary generated Today
Recent updates
v4.3.0
3 weeks agov4.3.0 focuses on performance optimizations for streams. It adds fast paths so `defaultReader.read()` and `byobReader.read(view)` can immediately return an already-resolved promise when buffered chunks are available, and updates `pipeTo()` to batch-read all currently-available chunks while still respecting backpressure.
v4.2.0
9 months agov4.2.0 updates the library to align with WHATWG Streams spec snapshot 080852c. Beyond the documented spec alignment, the release includes substantial TypeScript typing changes around ReadableStream reader APIs and BYOB (Bring-Your-Own-Buffer) view types, plus tooling and workspace configuration updates.
BreakingFeaturesv4.1.0
1/5/2025v4.1.0 aligns the polyfill with a newer WHATWG Streams spec revision. It fixes ReadableStream async iterator promise ordering for both next() and return(), and includes some controller typing improvements. The code diff also shows additional type and internal refactors beyond what the release notes mention.
v4.0.0
2/28/2024v4.0.0 significantly restructures how web-streams-polyfill is published and consumed, using Node package subpath exports and switching the ES2018 variant to the ES2015-based build. It also updates the ReadableStream.from() implementation to avoid relying on async generator downleveling for ES5, and it minifies the published JavaScript to reduce download size.
Breakingv3.3.3
2/16/2024v3.3.3 is a small update focused on aligning the ReadableStream typings with TypeScript's AsyncIterable<R> expectations. The diff shows both type declaration changes and a runtime/internal change related to how the async iterator symbol is resolved and wired.
v3.3.2
1/4/2024Release v3.3.2 is described as a bug fix for a bad npm publish. The code diff included in this comparison shows only metadata changes (version number updates) and a changelog entry, with no functional code changes visible.
v3.3.1
1/4/2024v3.3.1 primarily restores compatibility changes that were likely too aggressive in v3.3.0. It reverts the package Node engine requirement and restores TypeScript 3.5 and below support by changing how type declaration files are generated and published.
v3.3.0
1/4/2024v3.3.0 expands ReadableStream capabilities (notably ReadableStream.from, plus BYOB reader enhancements like a min option) and aligns behavior with a newer WHATWG Streams spec commit. It also adds support for AbortSignal.reason during pipe abortion and improves internal handling to avoid Bluebird-related warnings.
Featuresv4.0.0-beta.3
5/24/2022v4.0.0-beta.3 mainly aligns the polyfill with a newer WHATWG Streams spec snapshot and includes a fix for ReadableStream.pipeTo() in the abort/preventCancel=true scenario. The code diff shows additional internal behavioral changes around reader lock release and BYOB pending read handling that are not described in the release notes.
v4.0.0-beta.2
4/11/2022v4.0.0-beta.2 primarily updates the polyfill to interoperate with native Web Streams in scenarios involving piping, and improves compatibility with older Node packaging and Promise handling. The release notes mention pipeTo/pipeThrough support with native WritableStream, package export fallbacks, and suppressing Bluebird warning noise.
Features