Back to Explore

MattiasBuelens/web-streams-polyfill

GitHub
1 updates · last 90 days1 watchersOpen source

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

AI-generated from public sources. May be inaccurate. Report

Recent updates

  • v4.3.0

    3 weeks ago

    v4.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 ago

    v4.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.

    BreakingFeatures
  • v4.1.0

    1/5/2025

    v4.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/2024

    v4.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.

    Breaking
  • v3.3.3

    2/16/2024

    v3.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/2024

    Release 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/2024

    v3.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/2024

    v3.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.

    Features
  • v4.0.0-beta.3

    5/24/2022

    v4.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/2022

    v4.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