Skip to content

node:stream

How Elide supports Node's stream, stream/promises and stream/consumers, with stream/web as the WHATWG stream globals and a stream/iter extension.

On this page

node:stream, node:stream/promises, and node:stream/consumers match Node’s streams.

Example

js
// stream.mjs
import { Readable, Transform, Writable } from "node:stream";
import { pipeline } from "node:stream/promises";

const upper = new Transform({
  transform(chunk, _encoding, done) {
    done(null, chunk.toString().toUpperCase());
  },
});
const lines = [];
const sink = new Writable({
  write(chunk, _encoding, done) {
    lines.push(chunk.toString());
    done();
  },
});

await pipeline(Readable.from(["alpha", "beta", "gamma"]), upper, sink);
console.log(lines.join(" "));
utf-8 · js · Lines: 19

elide run stream.mjs prints:

text
ALPHA BETA GAMMA
utf-8 · text · Lines: 1

Differences from Node

  • node:stream/web classes are the same objects as the WHATWG stream globals.
  • node:stream/iter is an Elide extension with iterator conversion helpers.

Samples

Reference

Status: Partial · 215 of 238 suite tests pass (90.3%) · since 1.1.0

Exports

ExportKindStatusNotes
ReadableclassFullreadable, readableEnded, readableFlowing, readableHighWaterMark, readableLength, readableObjectMode, readableEncoding, destroyed, read(), setEncoding(), pause(), resume(), isPaused(), unpipe(), unshift(), wrap(), push(), destroy(), pipe(), toArray(), forEach(), some(), every(), find(), reduce(), map(), filter(), flatMap(), drop(), take()
WritableclassFullwritable, writableEnded, writableFinished, writableHighWaterMark, writableLength, writableObjectMode, writableCorked, destroyed, write(), end(), cork(), uncork(), destroy(), setDefaultEncoding()
DuplexclassFullwritable, writableEnded, writableFinished, writableHighWaterMark, writableLength, writableObjectMode, writableCorked, write(), end(), cork(), uncork(), setDefaultEncoding()
TransformclassFull
PassThroughclassFull
ReadablepropertyFullThe Readable stream class
WritablepropertyFullThe Writable stream class
DuplexpropertyFullThe Duplex stream class
TransformpropertyFullThe Transform stream class
PassThroughpropertyFullThe PassThrough stream class
pipelinepropertyFullPromise-based pipeline() utility for composing stream pipelines with error propagation
finishedpropertyFullPromise-based finished() utility that resolves/rejects when a stream completes or errors
composepropertyFullComposes streams into a single Duplex; pipes them and returns a Duplex that writes to the head and reads…

Not implemented

stream/web.ReadableStreamTee.

Tests: node-api node:streams: 215 pass, 22 fail, 1 error, 9 skipped. Failing: test-stream-auto-destroy.js, test-stream-compose.js, test-stream-consumers.js, test-stream-destroy.js, test-stream-duplex-from.js, test-stream-duplex.js, test-stream-iter-disabled.js, test-stream-iter-readable-interop-disabled.js, and 15 more.

Was this page helpful?