Skip to content

Web Streams API

Key idea:

Web Streams API — standard JS API for chunked data processing. ReadableStream / WritableStream / TransformStream. Native in browsers + Node.js 18+. Enables fetch streaming response, on-the-fly compression, progressive rendering, SSE (Server-Sent Events). Key enabler for AI streaming responses, large file uploads.

Below: details, example, related terms, FAQ.

Try it now — free →

Details

  • ReadableStream: source (fetch response.body, file, generator)
  • WritableStream: destination (fetch POST body, WebSocket)
  • TransformStream: middle stage (decode, encrypt, compress)
  • Pipe: reader.pipeThrough(transformer).pipeTo(writer)
  • Backpressure: built-in, slow consumer does not overwhelm producer

Example

// Stream fetch response
const response = await fetch('/api/llm-chat');
const reader = response.body.getReader();
const decoder = new TextDecoder();
while (true) {
  const { done, value } = await reader.read();
  if (done) break;
  output.textContent += decoder.decode(value);
}

// TransformStream — decrypt on-the-fly
const decryptor = new TransformStream({
  transform(chunk, ctl) { ctl.enqueue(decrypt(chunk)); }
});

Related Terms

Learn more

Frequently Asked Questions

Streams vs Promises?

Promise: one result. Stream: a sequence of chunks. For large responses (LLM, file upload) streams are critical — they do not block memory.

Browser support?

100% modern browsers (Chrome 89+, Firefox 102+, Safari 14.5+). Node.js 18+ has full Web Streams API.

Compression Streams?

compressionStream API (2024) — native gzip/deflate via Web Streams. Replaces pako, zlib usage.