Ömer Özbay
Node.js Streams
Node.js

Node.js Stream API: Sıfırdan Tam Rehber

13 Mart 2026 8 dk okuma 2.1K görüntülenme

Node.js Stream API, büyük veri setlerini belleğe tamamen yüklemeden işlemenizi sağlar. Dosya okuma, HTTP istekleri, veri dönüşümleri — hepsi stream'lerle çok daha verimli hale gelir.

Stream Türleri

  • Readable: Veri kaynağı (dosya okuma, HTTP response)
  • Writable: Veri hedefi (dosya yazma, HTTP request)
  • Duplex: Hem okuma hem yazma (TCP socket)
  • Transform: Veriyi dönüştüren Duplex (gzip, şifreleme)

Temel Kullanım

import { createReadStream, createWriteStream } from 'fs'; import { createGzip } from 'zlib'; import { pipeline } from 'stream/promises'; // 10GB dosyayı belleği patlatmadan sıkıştır await pipeline( createReadStream('büyük-dosya.txt'), createGzip(), createWriteStream('büyük-dosya.txt.gz') );

Transform Stream Oluşturma

import { Transform } from 'stream'; const upperCaseTransform = new Transform({ transform(chunk, encoding, callback) { this.push(chunk.toString().toUpperCase()); callback(); } }); process.stdin.pipe(upperCaseTransform).pipe(process.stdout);

Backpressure Yönetimi

Stream'lerin en kritik konusu backpressure'dır. Yazma hızı okuma hızından yavaşsa veri birikir. pipeline() bunu otomatik yönetir, bu yüzden manuel pipe() yerine her zaman pipeline() tercih edin.

Sonuç

Stream API, Node.js'in en güçlü özelliklerinden biri. Büyük dosyalar, gerçek zamanlı veri işleme ve yüksek throughput gerektiren senaryolarda vazgeçilmez bir araç.

Faydalı buldunuz mu? Bu içeriği kendi ağınızla paylaşarak bana destek olabilirsiniz.