Web Streams API — стандартный JS API для chunked обработки data. ReadableStream / WritableStream / TransformStream. Native в browsers + Node.js 18+. Позволяет fetch streaming response, compression on-the-fly, progressive rendering, SSE (Server-Sent Events). Key enabler для AI streaming responses, large file uploads.
Ниже: подробности, пример, смежные термины, FAQ.
// 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)); }
});Promise: один result. Stream: последовательность chunks. Для large responses (LLM, file upload) streams critical — не блокируют memory.
100% modern browsers (Chrome 89+, Firefox 102+, Safari 14.5+). Node.js 18+ имеет полный Web Streams API.
compressionStream API (2024) — native gzip/deflate через Web Streams. Replaces pako, zlib usage.