Node.js core streams for userland
npm install readable-stream
This package is a mirror of the streams implementations in Node.js 18.19.0.
Full documentation may be found on the Node.js website.
If you want to guarantee a stable streams base, regardless of what version of Node you, or the users of your libraries are using, use readable-stream only and avoid the "stream" module in Node-core, for background see this blogpost.
As of version 2.0.0 readable-stream uses semantic versioning.
v4.x.x of readable-stream
is a cut from Node 18. This version supports Node 12, 14, 16 and 18, as well as evergreen browsers.
The breaking changes introduced by v4 are composed of the combined breaking changes in:
This also includes many new features.
v3.x.x of readable-stream
is a cut from Node 10. This version supports Node 6, 8, and 10, as well as evergreen browsers, IE 11 and latest Safari. The breaking changes introduced by v3 are composed by the combined breaking changes in Node v9 and Node v10, as follows:
v2.x.x of readable-stream
is a cut of the stream module from Node 8 (there have been no semver-major changes from Node 4 to 8). This version supports all Node.js versions from 0.8, as well as evergreen browsers and IE 10 & 11.
You can swap your require('stream')
with require('readable-stream')
without any changes, if you are just using one of the main classes and
functions.
const {
Readable,
Writable,
Transform,
Duplex,
pipeline,
finished
} = require('readable-stream')
Note that require('stream')
will return Stream
, while
require('readable-stream')
will return Readable
. We discourage using
whatever is exported directly, but rather use one of the properties as
shown in the example above.
You will need a bundler like browserify
, webpack
, parcel
or similar. Polyfills are no longer required since version 4.2.0.
readable-stream
is maintained by the Streams Working Group, which
oversees the development and maintenance of the Streams API within
Node.js. The responsibilities of the Streams Working Group include:
readable-stream
to be included in Node.js.