Bun
- Okunuşu
- ban
Kısaca
Bun; paket yöneticisi, bundler ve test çalıştırıcı da olan, Node.js'in yerine geçmek üzere tasarlanmış hızlı bir JavaScript ve TypeScript çalışma ortamıdır.
Bun nedir?
Bun, tek bir bun programı olarak gelen, JavaScript ve TypeScript için hepsi bir arada bir araç takımıdır. Merkezinde, kodu Node.js gibi tarayıcı dışında çalıştıran bir çalışma ortamı vardır; ama Google'ın V8 motoru yerine Safari'nin motoru olan JavaScriptCore'u kullanır ve düşük seviyeli bir sistem dili olan Zig ile yazılmıştır. Projeyi Jarred Sumner başlattı; 1.0 sürümü 2023'te çıktı, Windows desteği de 2024'te geldi.
Aynı çalıştırılabilir dosya birkaç aracın yerini tutar. bun install, bağımlılıkları çok daha hızlı kuran ve onları bir bun.lock dosyasına kaydeden, npm uyumlu bir paket yöneticisidir; bun run TypeScript ve JSX dosyalarını doğrudan başlatır; bun test Jest uyumlu bir test çalıştırıcıdır; bun build da kodu tarayıcı için paketler. HTTP sunucuları için Bun.serve ve SQLite için bun:sqlite gibi yerleşik API'ler, sık yapılan işleri ek paket olmadan karşılar. Tipik bir Node.js kurulumunun ayrı bir bıçak, tornavida ve makas taşıdığı yerde tek bir İsviçre çakısı düşünün.
Ekipler Bun'ı mevcut Node.js projelerinde kurulumları ve test çalıştırmalarını hızlandırmak, TypeScript script'lerini hiç yapılandırma olmadan çalıştırmak ve web sunucuları ile komut satırı araçları geliştirmek için kullanır. Aralık 2025'te Bun, kendi kodlama araçlarını onun üzerine kuran Anthropic tarafından satın alındı; proje MIT lisansıyla açık kaynak olarak kalıyor.
Bun en çok Node.js ile karşılaştırılır. node:fs ve node:http gibi Node.js yerleşik modüllerini uygular, package.json ve node_modules klasörünü okur ve çoğu npm paketini değiştirmeden çalıştırır; bu yüzden asıl farklar hız, açılış süresi ve içinde gelen araçlardır. Uyumluluk yüksektir ama eksiksiz değildir: Node.js'in iç yapılarına dayanan paketler hâlâ farklı davranabilir ve Node.js'in üretimde çok daha uzun bir geçmişi vardır. Üçüncü büyük çalışma ortamı olan Deno ise ne Bun'ın ne de Node.js'in varsayılan olarak açtığı bir izin sistemi ekler.
Önemli noktalar
- Bun, JavaScriptCore üzerine kurulu ve Zig ile yazılmış bir JavaScript ve TypeScript çalışma ortamıdır.
- Tek bir çalıştırılabilir dosya aynı zamanda paket yöneticisi, bundler ve test çalıştırıcıdır.
- Node.js'in yerine doğrudan geçmeyi hedefler ve çoğu npm paketini çalıştırır.
- Asıl çekiciliği hızlı kurulum ve açılıştır; uyumluluk yüksektir ama eksiksiz değildir.
- Aralık 2025'ten beri Anthropic'e aittir ve hâlâ MIT lisanslı açık kaynaktır.
Örnek
# Install dependencies from package.json (npm-compatible, writes bun.lock)
bun install
# Run TypeScript directly, with no build step or config
bun run server.ts
# Run a package.json script, or the Jest-compatible tests
bun run dev
bun test
# Bundle for the browser
bun build ./src/index.ts --outdir ./dist
# Run a package's command without installing it, like npx
bunx cowsay "Hello from Bun"Sık sorulan sorular
Bun ile Node.js arasındaki fark nedir?
İkisi de JavaScript'i tarayıcı dışında çalıştırır ve aynı npm paketlerini kullanır. Node.js V8 motorunu kullanır, npm ile birlikte gelir ve paketlemeyi ayrı araçlara bırakır; Bun ise JavaScriptCore kullanır, daha hızlı açılır ve kendi paket yöneticisini, bundler'ını ve test çalıştırıcısını içinde getirir.
Bun'ı mevcut bir Node.js projesinde kullanabilir miyim?
Çoğu zaman evet. Uygulama Node.js üzerinde çalışmaya devam ederken yalnızca bun install ya da bun test ile başlayabilir, testler geçtiğinde bun run komutunu deneyebilirsiniz; çünkü birkaç paket hâlâ farklı davranabilir.
Bun üretime hazır mı?
Bun'ın 2023'teki 1.0 sürümünden beri kararlı sürümleri var ve birçok ekip onu üretimde çalıştırıyor. Yine de önce test paketinizi onunla çalıştırmaya değer, çünkü her Node.js API'si ve paketiyle uyumluluk garanti değildir.
İlgili sayfalar
- Node.jsBackend ve API'ler, s. 33Node.js, JavaScript'i tarayıcı dışında çalıştıran, en çok web sunucuları, API'ler ve komut satırı araçları için kullanılan açık kaynaklı çalışma ortamıdır.
- DenoBackend ve API'ler, s. 11Deno, sistem erişimini izin verilene kadar kapalı tutan ve kendi araçlarıyla gelen, açık kaynaklı bir JavaScript ve TypeScript çalışma ortamıdır.
- npmWeb Geliştirme, s. 39npm, Node.js'in varsayılan paket yöneticisi ve dünyanın en büyük yazılım deposudur; bir projenin bağımlılıklarını indirir ve sürümlerini takip eder.
- BundlerWeb Geliştirme, s. 8Bundler, JavaScript modüllerini ve bağımlılıklarını tarayıcıların hızlıca indirip çalıştırabileceği birkaç optimize dosyada birleştiren bir derleme aracıdır.
- Test RunnerTest ve Kalite, s. 34Test runner, bir projenin otomatik testlerini genellikle tek komutla bulan, çalıştıran ve hangilerinin geçtiğini ya da başarısız olduğunu raporlayan araçtır.
- TypeScriptWeb Geliştirme, s. 61TypeScript, JavaScript üzerine statik tipler ekleyerek birçok hatayı kod çalışmadan yakalayan ve düz JavaScript'e derlenen bir programlama dilidir.
Kaynaklar
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin