Bun v1.3.10
(bun.com)- REPL tamamen Zig ile yeniden yazıldı ve anında çalıştırma ile zengin bir terminal arayüzü sunuyor; pano kopyalama, sekme tamamlama, geçmiş kaydetme gibi çeşitli özellikleri destekliyor
- Tarayıcı hedefli derleme komutuyla her şeyin satır içi olduğu tek bir HTML dosyası üretilebiliyor; böylece sunucu olmadan da çalıştırılabiliyor
- TC39 standart ES dekoratörleri tam olarak destekleniyor;
accessor,Symbol.metadata,addInitializergibi güncel sözdizimleri kullanılabiliyor - Windows ARM64 desteği, barrel import optimizasyonu, test yeniden deneme seçeneği, performansı artırılmış JavaScriptCore motoru gibi çok sayıda platform ve performans iyileştirmesi içeriyor
- Genel olarak Bun'un geliştirici deneyimi, performansı ve uyumluluğu belirgin biçimde iyileştiren bir sürüm
Yeni REPL
- REPL, Zig tabanlı yerel bir uygulama ile değiştirildi; harici npm paketi bağımlılığı olmadan anında çalışabiliyor
- Sözdizimi vurgulama, Emacs tuş kısayolları, sekme tamamlama, geçmiş kaydetme, çok satırlı giriş gibi özellikleri destekliyor
.copy,.help,.exit,.editorgibi yerleşik komutlar sunuyorconst/letbildirimlerini koruyor; top-level await ile import/require desteğinin ikisini de sağlıyor
--compile --target=browser
bun build --compile --target=browserile JavaScript, CSS ve varlıkları satır içine alınmış HTML üretilebiliyor<script src="...">ve<link rel="stylesheet">etiketleri sırasıyla satır içi koda dönüştürülüyorfile://ortamında bile CORS kısıtlamaları olmadan çalışabiliyor- TypeScript, JSX, React, CSS, ESM ve CJS'nin tümünü destekliyor
TC39 standart ES dekoratörleri
- Stage-3 standart dekoratörler tam olarak destekleniyor
accessoranahtar sözcüğü,Symbol.metadata,ClassMethodDecoratorContextgibi güncel spesifikasyonlar uygulanmış durumda- Alan, metot ve sınıf dekoratörleri ile başlatıcılar (
addInitializer) destekleniyor - Mevcut TypeScript deneysel dekoratörleri (
experimentalDecorators) de çalışmaya devam ediyor
Windows ARM64 desteği
- Snapdragon gibi ARM64 tabanlı Windows sistemlerinde Bun çalıştırılabiliyor ve derlenebiliyor
bun-windows-arm64hedefiyle çapraz derleme destekleniyor- Hem CLI hem de API tarafında aynı şekilde kullanılabiliyor
Barrel import optimizasyonu
import { Button } from 'antd'gibi barrel dosyası yeniden dışa aktarma yapıları otomatik olarak algılanıyor"sideEffects": falseayarı olduğunda otomatik optimizasyon uygulanıyoroptimizeImportsseçeneğiyle açıkça belirtmek de mümkün- Yalnızca gerekli alt modüller ayrıştırılarak derleme hızı en fazla 2 kat artırılıyor
Bundle çıktısı optimizasyonu
- ESM/CJS bundle'larında closure sayısı ve heap bellek kullanımı azaltıldı
- Nesne sayısı %11 azaldı, heap boyutu 4 MB küçüldü, fonksiyon ve environment object sayıları büyük ölçüde azaltıldı
- Kod değişikliği olmadan otomatik olarak uygulanıyor
bun test --retry
- Testlerin tamamı için varsayılan yeniden deneme sayısı ayarlanabiliyor (
--retry N)- Tekil testlerdeki
{ retry: N }seçeneği öncelikli oluyor - JUnit XML raporlayıcısında her deneme ayrı bir
<testcase>olarak kaydediliyor
- Tekil testlerdeki
Bun.generateHeapSnapshot("v8") iyileştirmesi
"arraybuffer"seçeneğiyle heap snapshot, ArrayBuffer biçiminde döndürülebiliyor- Büyük snapshot'lar işlenirken string dönüşümünün ek yükü ortadan kalkıyor
TLS ve sertifika güncellemeleri
- mTLS ve özel CA bağlantılarında keepalive desteği ile performans artırıldı
- Aynı TLS ayarları genel kayıt defterinde tekilleştiriliyor
- Kök sertifikalar, NSS 3.119 (Firefox 147.0.3) sürümüne güncellendi
- 4 adet CommScope kök sertifikası kaldırıldı
JavaScriptCore motoru yükseltmesi
- String slicing 168 kat,
endsWith10.5 kat,RegExpflag erişimi 1.6 kat,path.parse()ise en fazla 7 kat olmak üzere çok sayıda performans iyileştirmesi yapıldıstructuredClone, diziler ve nesne dizilerinde 25 kata kadar daha hızlıBuffer.slice()vesubarray()yaklaşık 1.8 kat iyileştirildiBigInt, string iterator'ları ve tamsayı işlemleri gibi alanlarda dahili optimizasyonlar yapıldı
Başlıca hata düzeltmeleri
- Python asyncio MCP sunucusu ile boru uyumluluğu sorunu çözüldü (
Bun.spawn) - Node.js uyumluluğu:
AsyncLocalStorage,fs.watch,httpbaşlık işleme, GC ile ilgili çakışmalar dahil çok sayıda düzeltme yapıldı - Bun API:
spawn,plugin,sql,buildile ilgili çökme ve bellek sızıntıları giderildi - WebSocket, bun install, CSS ayrıştırıcısı, bun shell, Windows ortamı gibi alanlarda genel kararlılık iyileştirildi
- Güvenlik açıkları: HTTP başlık enjeksiyonu, tarball yol dolaşma, S3 akış sızıntısı gibi sorunlar giderildi
1 yorum
Gerçekten epey uzun bir süredir gelişimini izleyip, en başından beri ara ara kullanmış biri olarak hissettiğim şey şu: Bun geliştiricileri gerçekten JS/TS dünyasının daha hızlı dönmesini içtenlikle istiyor. Şaşırtıcı. Gerçekten...