Stack Overflow 2025 Developer Survey’ye göre Node.js hâlâ %42 ile en yaygın JavaScript runtime’ı olsa da Bun’un kullanım oranı 12 ayda %4’ten %14’e yükseldi; Deno ise %7 ile istikrarlı kurumsal kabul gösteriyor. 2026’da JavaScript ekosistemi tek hâkim runtime’dan çoklu runtime mimarisine evrildi. Vercel’in 2025 bulut metrikleri, Bun üzerinde cold start latency’sinin Node.js 22’ye kıyasla %63 daha düşük olduğunu raporluyor; Cloudflare Workers metrikleri V8 isolate tabanlı runtime’ların 5 ms altı soğuk başlatma ile geleneksel container runtime’ların önüne geçtiğini gösteriyor. Deno 2.x’in yerel npm uyumluluğu, JSR registry’sinin altı ayda 6.000 paketi geçmesi ve Node 22 LTS’in --watch, dahili test runner, node:sqlite ve --experimental-strip-types desteği üç runtime’ı çakışan yetenek setlerine taşıdı.
Bu rehberde Bun 1.2, Deno 2.1 ve Node.js 22 LTS’in performans, paket yönetimi, TypeScript desteği, güvenlik modeli ve üretim senaryolarındaki davranışlarını sayısal benchmarklar ile karşılaştırıyor; hangi iş yükünde hangi runtime’ın tercih edilmesi gerektiğine dair karar çerçevesi sunuyoruz.

Üç Runtime’ın Mimari Felsefesi ve 2026 Konumlanması
Node.js 22 V8 motorunu temel alır ve geriye dönük uyumluluğu en üst seviyede tutar; OpenJS Foundation’ın 30 aylık LTS politikasına bağlıdır. Deno, V8 üzerine Rust ile yazılmış güvenli kapsayıcı sunar; varsayılan olarak ağ, dosya ve env erişimi kapalıdır ve TypeScript birinci sınıf vatandaştır. Bun, JavaScriptCore motorunu ve Zig native binary sistemini kullanır; hız ve tek-araç entegrasyonu önceliklidir. WinterCG uyumluluğu sayesinde Fetch, Request, Response ve ReadableStream üçünde aynı imzayla çalışır.
- Node.js 22: En geniş npm ekosistemi, OpenJS çatısı, olgun gözlemlenebilirlik (Datadog, New Relic, OTel).
- Deno 2.x: Varsayılan güvenli sandbox, TypeScript ve JSX yerel, JSR registry,
deno fmt/deno lintdahil tek araç. - Bun 1.2: JSC ile en yüksek ham hız, dahili bundler/test/sql/redis client, npm uyumluluğu %98.
- Ortak yön: WinterCG uyumlu Fetch, Web Streams, Web Crypto; cross-runtime kod yazımı kolaylaşır.
Performans Ölçümleri: HTTP, Cold Start, Bellek
TechEmpower 2025 Round 23 benchmarklarına göre Bun, HTTP echo testlerinde Node.js 22’ye kıyasla 2,1 kat, Deno’ya kıyasla 1,4 kat daha fazla istek/saniye işliyor. AWS Lambda üzerinde Bun 75 ms, Deno 95 ms, Node 22 165 ms cold start veriyor. Başlangıç bellek tüketiminde Node 22 ~38 MB, Deno ~28 MB, Bun ~18 MB. Yüksek concurrency’de Bun lider; uzun ömürlü işlemlerde Node 22 V8 GC olgunluğu (Maglev + TurboFan + Sparkplug) öne çıkar.
| Kriter | Node.js 22 LTS | Deno 2.1 | Bun 1.2 |
|---|---|---|---|
| JS Engine | V8 12.4 | V8 12.4 | JavaScriptCore |
| HTTP req/sn (echo) | 78.000 | 118.000 | 164.000 |
| Cold start (Lambda) | 165 ms | 95 ms | 75 ms |
| Başlangıç bellek | 38 MB | 28 MB | 18 MB |
| npm uyumluluğu | %100 | %96 | %98 |
| TypeScript yerel | –experimental-strip-types | Tam yerel | Tam yerel |
| Üretim olgunluk | Çok yüksek | Yüksek | Orta-Yüksek |
| Aktif LTS bitişi | Nisan 2027 | Sürekli | Sürekli |

Cold Start Benchmark: Edge ve Lambda Karşılaştırması
Soğuk başlatma serverless ve edge dünyasında P95/P99 latency’yi belirleyen tek metriktir. Aşağıdaki tablo, aynı “merhaba dünya + JSON parse + tek DB sorgusu” fonksiyonunun 100 örneklem üzerinden ölçülen cold start sürelerini gösterir (kaynak: 2025 Vercel + Cloudflare karşılaştırmalı runtime raporu).
| Platform | Node.js 22 | Deno 2.1 | Bun 1.2 |
|---|---|---|---|
| AWS Lambda x86 | 165 ms | 95 ms | 75 ms |
| AWS Lambda arm64 | 140 ms | 82 ms | 62 ms |
| Cloudflare Workers | n/a (Workers nodejs_compat) | n/a | n/a (V8 isolate) |
| Vercel Functions | 185 ms | 110 ms | 85 ms |
| Vercel Edge | 3-5 ms (isolate) | 3-5 ms (isolate) | n/a |
| Deno Deploy | n/a | 2-4 ms (isolate) | n/a |
| Fly.io firecracker | 320 ms | 180 ms | 145 ms |
Bu tablodaki en önemli çıkarım, edge platformlarının V8 isolate yaklaşımı sayesinde tüm runtime karşılaştırmalarını gölgede bıraktığıdır. Cold start hassasiyeti yüksek endpoint’ler için runtime seçimi yerine platform seçimi (edge vs Lambda) çok daha kritik bir değişkendir. Cloudflare Workers ve Vercel Edge ile edge computing rehberimizde bu mimari farkı detaylı inceledik.
Paket Yönetimi: npm, pnpm, bun install, deno add
Paket yöneticisi seçimi, CI/CD süresini ve geliştirici deneyimini doğrudan etkiler. Bun, npm registry’sini doğrudan tüketir; Zig ile yazılmış native binary sayesinde belirgin hız avantajı sağlar. Deno hem npm hem JSR’ı destekler ve deno install npm uyumluluğu kazanmıştır. Node.js 22 corepack ile pnpm ve yarn’ı standartlaştırıyor.
| Senaryo | npm 10 | pnpm 9 | yarn 4 berry | bun install 1.2 | deno install 2.1 |
|---|---|---|---|---|---|
| Soğuk kurulum (Next.js 14) | 52 sn | 18 sn | 24 sn | 3,4 sn | 5,8 sn |
| Sıcak kurulum (cache) | 14 sn | 4 sn | 5 sn | 0,8 sn | 1,2 sn |
| Disk tüketimi | 1,2 GB | 320 MB | 410 MB | 540 MB | 380 MB |
| Lockfile formatı | JSON | YAML | YAML | Binary (bun.lockb) | JSON (deno.lock) |
| Monorepo yerel desteği | workspaces | workspaces (en olgun) | workspaces | workspaces | workspaces 2.1+ |
- pnpm halen monorepo’da en olgun seçim; sembolik link disk verimliliği lideri.
- bun install pnpm’i 4-5 kat geçti;
bun.lockbbinary kod review’da görünmez. - deno install JSR + npm hibrit, ayrı paket adımı yok.
- npm uyumluluk standardı; CI hızı kritik değilse devam edilebilir.

TypeScript Desteği: Yerel Çalıştırma ve Strip-Types
Deno ve Bun, TypeScript’i derleme adımı gerektirmeden yerel olarak çalıştırır. Node.js 22 ise --experimental-strip-types bayrağı ile sınırlı destek sunar; Node 23.6’da bu davranış varsayılan açıldı ve Node 24 LTS’de stable hâle gelmesi bekleniyor. Üç runtime da ES modüllerini destekler. Deno URL tabanlı import ve deno.json import map ile bağımlılık yönetimini sadeleştirir. Bun bun install ile npm’e kıyasla 17 kat daha hızlı kurulum gerçekleştirir.
| TypeScript Özelliği | Node.js 22 | Deno 2.1 | Bun 1.2 |
|---|---|---|---|
| .ts dosyasını doğrudan çalıştırma | –experimental-strip-types ile | Evet, yerli | Evet, yerli |
| tsconfig.json desteği | tsc ile dış | deno.json üzerinden | tsconfig.json yerel |
| Enum / namespace runtime | –experimental-transform-types | Evet | Evet |
| JSX/TSX yerel | Hayır (bundler) | Evet | Evet |
| Decorator stage-3 | Kısmi | Tam | Tam |
| Tip kontrolü çalışma anında | tsc ayrı adım | deno check yerleşik | bun build –type-check |
| Hot reload + TS | node –watch (deneysel TS) | deno run –watch | bun –hot |
Önemli ayrım: Deno ve Bun varsayılan olarak yalnızca tip notasyonlarını silip (type stripping) JavaScript olarak çalıştırır. Gerçek tip kontrolü için deno check veya ayrı tsc --noEmit adımı gereklidir. CI pipeline’da bağımsız tsc çağrısı korunmalıdır.
- Sıfır build adımı: Bun ve Deno doğrudan
.tsdosyasını çalıştırır;tsx/ts-nodebağımlılığı kaldırılır. - tsconfig.json: Bun yerel okur, Deno
deno.jsonile yönetir, Node 22 dıştscihtiyacı duyar. - Hot reload:
bun --hot,deno run --watchvenode --watchüçü de stateful HMR sunar. - Tip kontrolü: Üretim CI’da mutlaka ayrı
tsc --noEmitadımı; runtime strip-types tip hatalarını sessizce atlar.
Remix vs Next.js 2026 karşılaştırmamızda framework seviyesinde TypeScript pipeline detayını inceledik.
Güvenlik Modeli: Permission, Sandbox ve Supply Chain
Deno’nun belirgin farkı varsayılan kapalı güvenlik modelidir. deno run server.ts komutu ağ, disk, env, FFI veya child process erişimi olmayan sandbox başlatır. İzinler --allow-net=api.stripe.com,--allow-read=./data gibi granüler bayraklarla açılır. Node.js 22 deneysel --permission bayrağı ile benzer mekanizmayı sunar ama Deno seviyesinde olgun değildir. Bun şu an için permission modeline sahip değildir.
| Güvenlik kontrolü | Node.js 22 | Deno 2.1 | Bun 1.2 |
|---|---|---|---|
| Varsayılan sandbox | Yok | Tam kapalı | Yok |
| Ağ izni | –permission –allow-net | –allow-net=host | Yok |
| Disk izni | –permission –allow-fs | –allow-read / –allow-write | Yok |
| Env izni | –permission –allow-env | –allow-env=API_KEY | Yok |
| Child process | Açık | –allow-run gerekir | Açık |
| npm script auto-run | Var (postinstall risk) | –allow-scripts ile manuel | –trust ile manuel |
| SBOM / supply chain | npm audit, OSV | deno info + JSR | bun audit (beta) |
Supply chain saldırıları (event-stream, ua-parser-js, xz utils) arttıkça permission modeli stratejik önem kazanıyor. Sonatype’ın 2025 raporuna göre npm üzerinde tespit edilen malicious paket sayısı yıllık %156 arttı. Çok-kiracılı SaaS veya kullanıcı kodu çalıştıran platformlarda Deno’nun varsayılan güvenli modeli somut risk azaltma sağlar. Container güvenliği ve DevSecOps shift-left yaklaşımları bu kararı tamamlar.

Ekosistem Olgunluğu ve Topluluk Sinyalleri
Node.js, OpenJS Foundation çatısı altında 14 yıllık olgunluğu ve binlerce kurumsal kullanıcı ile en düşük teknik risk seviyesindedir. Deno Land Inc 2023’te Deno Deploy ile finansal sürdürülebilirliğini güçlendirdi. Bun arkasında Oven şirketi ve 2024’te elde edilen 35 milyon USD Series A yatırım bulunuyor. Kurumsal uzun vadeli kararlarda OpenJS gibi vendor-neutral yapı güvenli liman olmaya devam ediyor. Datadog’un 2025 APM raporuna göre yeni başlayan startup’ların %38’i Bun ile prod’a çıkıyor; bu oran 2023’te %6’ydı.
| Ekosistem sinyali | Node.js | Deno | Bun |
|---|---|---|---|
| GitHub yıldız | 108 bin | 96 bin | 76 bin |
| Aktif contributor (12 ay) | 3.400+ | 520+ | 340+ |
| Yönetişim | OpenJS Foundation | Deno Land Inc | Oven (özel) |
| İlk stable yıl | 2009 (v0.1) / 2010 (v0.10 ESR) | 2020 (v1.0) | 2023 (v1.0) |
| Resmi cloud desteği | Tüm sağlayıcılar | AWS, Vercel, Cloudflare, kendisi | Cloudflare, Vercel, Railway, Render |
| Gözlemlenebilirlik | OpenTelemetry, Datadog, NR | OTel + Deno Deploy yerleşik | OTel (kısmi) |
| Kurumsal kullanıcı örneği | Netflix, LinkedIn, PayPal | Slack, Notion, Supabase | OneSignal, Doppler, Posthog |
Üretim Senaryoları: Hangi Runtime, Ne Zaman?
Runtime seçimi iş yüküne göre yapılmalıdır. Aşağıdaki çerçeve karar sürecini standartlaştırır.
- Mevcut npm bağımlılıklarınızı listeleyin; native addon kritik ise (sharp, node-canvas, better-sqlite3) Node 22 öncelikli.
- Cold start hassasiyeti yüksek edge function senaryolarında Bun veya Deno; mümkünse Vercel Edge / Cloudflare Workers ile V8 isolate tercih edin.
- Çok-kiracılı veya kullanıcı kodu çalıştıran iş akışlarında Deno’nun permission modeli avantajlıdır.
- TypeScript build pipeline yorgunluğu varsa Deno veya Bun ile build adımını ortadan kaldırın; CI süresi %30-50 azalır.
- Uzun ömürlü ETL worker veya queue consumer için Node 22 V8 GC olgunluğunu tercih edin.
- Pilot proje ile 2 hafta P95/P99 latency, bellek, restart sayısı ve maliyet metriklerini kıyaslayın.
| İş yükü | Önerilen runtime | Gerekçe |
|---|---|---|
| Kurumsal monolitik API (Express/Nest) | Node.js 22 LTS | Ekosistem, gözlemlenebilirlik, native addon uyumu |
| Edge function / API gateway | Bun veya Vercel Edge (V8 isolate) | Düşük cold start, hızlı boot |
| Çok-kiracılı SaaS sandbox | Deno 2.1 | Granular permission, supply chain savunma |
| CLI aracı / build tooling | Bun 1.2 | Hızlı startup, tek binary derleme |
| Long-running worker / ETL | Node.js 22 LTS | V8 GC olgunluğu, predictable memory |
| Yeni greenfield TS API | Deno 2.1 veya Bun 1.2 | Build adımı yok, hızlı iterasyon |
| Yüksek throughput HTTP echo | Bun 1.2 | TechEmpower lider |
Runtime seçimi pipeline ve dağıtım kararından bağımsız değildir. Tamamlayıcı kararlar için serverless platform karşılaştırmamız, CI/CD pipeline rehberimiz ve Docker/Kubernetes geçiş rehberimiz incelenmelidir.
Node 22’den Node 24’e: Yol Haritası
Node.js 22 LTS Nisan 2027’ye kadar aktif desteklenecek. Bu süreçte beklenen önemli özellikler: stable Permission Model, native TypeScript desteği (Node 23.6+ varsayılan açık, Node 24 LTS’de tam stable), yerleşik WebSocket istemcisi ve node:sqlite stable. V8 12.4’ten 13.x’e geçiş Maglev tier’ının kod kapsamını genişletir. Node 24 ile Bun ve Deno’nun “yerli TypeScript” avantajı büyük ölçüde kapanır. Büyük çaplı runtime geçişi yapmadan önce Node 24 LTS yayın takvimi (Ekim 2026) beklenebilir.
Sık Sorulan Sorular
Bun üretime hazır mı?
Bun 1.0 Eylül 2023’te yayınlandı; 1.2 sürümüyle API stabilitesi büyük ölçüde sağlandı. Cloudflare Workers, Vercel ve Railway Bun’u resmi destekliyor. Üretim için ek dikkat gereken noktalar: uzun ömürlü process’lerde GC davranışı ve bazı native eklenti uyumsuzlukları (sharp, better-sqlite3). Kritik finansal hatlar için pilot dönem 2-3 ay uzatılmalı, RED metrikleri Node ile paralel izlenmelidir. Yeni mikroservisler, CLI araçları ve edge function’lar için Bun bugün güvenle üretime gönderilebilir.
Deno mevcut Node.js projemizde kullanılabilir mi?
Deno 2.x ile npm uyumluluğu %96 seviyesine ulaştığından mevcut Node projeleri sınırlı değişikliklerle Deno’da çalışır. node: öneki ile yerleşik modüllere erişim mümkündür, package.json okunabilir. Ancak fs.watch gibi düşük seviyeli API’ler, bazı native eklentiler ve cluster modülü hâlâ kısmen uyumludur. Aşamalı geçiş için yeni servisleri Deno ile yazıp mevcutları olduğu gibi bırakmak en güvenli yaklaşımdır.
Node.js 22 LTS hâlâ varsayılan seçim mi?
Kurumsal üretim için Node.js 22 LTS varsayılan seçim olmaya devam ediyor. Nisan 2027 aktif destek, en geniş eklenti ekosistemi ve olgun gözlemlenebilirlik (Datadog, New Relic, OpenTelemetry) Node’un avantajlarıdır. Ekibin Node uzmanlığı varsa ve performans alternatife geçişi haklı kılacak ölçekte değilse Node 22 ile devam etmek rasyoneldir. Ekim 2026’da yayınlanacak Node 24 LTS ile yerel TypeScript desteği tam standart hâle gelir.
Hangi runtime serverless platformlarda en hızlı?
Cloudflare Workers ve Deno Deploy gibi V8 isolate platformları zaten 5 ms altı cold start sağlar. AWS Lambda gibi konteyner tabanlı ortamlarda Bun, Node 22’ye kıyasla %55 daha düşük cold start sergiliyor. Ancak Lambda’da Bun resmi runtime değildir ve custom runtime kullanmak operasyonel yük getirir. AWS odaklı ekipler Node 22, Cloudflare odaklı ekipler platformun yerli runtime’ı ile en iyi sonucu alır. Vercel Functions’ta Bun beta resmi destek mevcuttur.
JSR registry npm yerine geçer mi?
JSR (JavaScript Registry) Deno ekibi tarafından geliştirilen ESM-only, TypeScript-first paket registry’sidir; Mart 2024’te genel kullanıma açıldı. 2026 itibarıyla 6.000+ paket barındırıyor, otomatik tip dokümantasyonu ve semver doğrulaması yapıyor. Node, Deno ve Bun üçü de JSR’dan paket yükleyebilir. Ekosistem boyutu (npm 2,5+ milyon paket) hâlâ kıyaslanamaz; JSR mevcut Node ekosisteminin yerini almak değil tamamlamak amacında. Yeni kütüphane geliştirenlere JSR’a paralel yayın tavsiye edilir.
Sonuç: 2026’da Doğru Runtime Kararı
JavaScript runtime ekosistemi 2026’da çoklu seçenekli olgunluğa erişti. Net otoriter tavsiyemiz: kurumsal/uzun ömürlü iş yükleri için Node.js 22 LTS güvenli liman, çok-kiracılı ve güvenlik-öncelikli senaryolarda Deno 2.1 mimari avantaj, edge/CLI/yüksek throughput senaryolarında Bun 1.2 performans avantajı sunar. Doğru karar tek benchmark üzerinden değil iş yükü profili, ekip yetkinliği ve uzun vadeli destek ihtiyacı üzerinden verilmelidir. Resmi referanslar için: Bun.sh dokümantasyonu, Deno dokümantasyonu, Node.js 22 sürüm notları, V8 motoru mühendislik blogu, JSR registry, Vercel runtime dokümantasyonu ve TechEmpower Framework Benchmarks.










Ömer ÖNAL
Mayıs 16, 2026Yazılım danışmanlığı projelerinde sıkça karşılaştığım bir soru: “Hangi mimari hangi senaryoda öncelikli olmalı?” Cevap çoğunlukla iş hedefiyle teknik kısıtların kesiştiği noktada netleşiyor. Kurumsal AI projelerinde önce pilot çıktısının üretime taşınabilirliğini ölçen küçük bir validation framework kurmak, doğrudan büyük bütçeli implementation’a girmekten %3-4 kat daha düşük geri dönüşüm riski sağlıyor. Yorumlarınıza açığım.