Yönetici Özeti ve Mimari Önem
Bun v1.2.22, çalışma zamanının evriminde önemli bir dönüm noktası olup, topluluk sorun takipçisinden bildirilen 144 sorunu çözmekte ve 257 geliştirici oyunu almaktadır. Bu sürüm, manşetlere çıkan sıfırdan özellikler yerine altyapı motorunu güçlendirmeye, Node.js API uyumluluğundaki boşluğu kapatmaya ve yoğun prodüksiyon ortamlarındaki uç durum davranışlarını iyileştirmeye odaklanmaktadır. Olay döngüsü, WebSocket alt protokol müzakeresi ve SQL veritabanı adaptörleri gibi temel alt sistemleri hedefleyerek, mühendislik ekibi tanı görünürlüğünü artırırken kurumsal geçişler için sürtünmeyi azaltmıştır.
Mimari açıdan bakıldığında, asenkron yığın izlerinin dahil edilmesi, asenkron JavaScript iş akışlarında hata ayıklama için kritik bir sıçramayı temsil eder. Tarihsel olarak, yüksek performanslı çalışma zamanlarındaki asenkron sınırlar, yığın kökenlerini gizleyerek dağıtık sistemlerde kök neden analizini karmaşıklaştırır. Eski uygulamaların tipik aşırı performans cezalarına katlanmadan asenkron çağrı zincirlerini sistematik olarak koruyarak, Bun v1.2.22 geliştiricilerin asenkron yürütme bağlamlarını sorunsuz bir şekilde izlemesini sağlar. perf_hooks aracılığıyla hassas olay döngüsü gecikme izleme ile birleştirilen bu sürüm, mimarlara ve sistem mühendislerine yüksek verimli mikro hizmetlerde açlığı, gecikme sıçramalarını ve iş parçacığı havuzu tıkanıklığını teşhis etmek için gereken telemetriyi sağlar.
Temel Geliştirmeler ve Geliştirici Ergonomisi
Geliştirici ergonomisi, ağ oluşturma, paketleme ve çalışma alanı yönetimindeki hedeflenen iyileştirmeler sayesinde bu sürümde büyük bir ivme kazanmaktadır. Ağ tarafında, WebSocket istemcisi artık alt protokol müzakeresi için RFC 6455'e katı bir şekilde bağlı kalmakta ve daha geniş bir üçüncü taraf sunucu yelpazesi ile kurumsal ağ geçitleriyle kutudan çıktığı gibi çalışabilirliği garanti etmektedir. Eş zamanlı olarak, HTTP sunucusu boşta bağlantı yönetimi, ölü soketleri agresif bir şekilde budamak, kaynak tükenmesi vektörlerini hafifletmek ve düzensiz trafik yükleri altında dosya tanımlayıcı kullanımını optimize etmek için kapsamlı bir şekilde elden geçirilmiştir. Dahası, bun run, geliştiricilerin karmaşık kabuk betiklerine veya harici görev çalıştırıcılarına başvurmadan birden fazla paket üzerinde aynı anda betikler çalıştırmasına izin vererek monorepo düzenlemesini kolaylaştıran --workspaces bayrağını yerel olarak desteklemektedir.
Veritabanı ve paketleyici alt sistemleri de kritik bir sertleşmeden geçmektedir. Yerleşik MySQL adaptörü, güvenilir affectedRows ve lastInsertRowid özelliklerini ortaya çıkaracak şekilde yükseltilmiş, standart veritabanı sürücüleriyle uyumluluk sağlanmış ve mutasyon sonrası durum doğrulama basitleştirilmiştir. Paketleyicide, JSX yan etkileri artık derleme ve küçültme aşamalarında titizlikle korunarak başlatma mantığının veya durum bilgisi olan bileşenlerin kazara kaldırılması engellenmektedir. Ek olarak, küçültücü, çıktı yük boyutlarını azaltmak için işlev adı kaldırma yetenekleri sunarken; child_process.spawnSync, Uint8Array tahsisli socket.write, crypto.verify içindeki RSA varsayılan işleme, N-API bağlamaları ve HTMLRewriter hata işlemeyi kapsayan kapsamlı Node.js uyumluluk yamaları, eski kurumsal uygulamaları Bun'a taşırken sürtünmeyi büyük ölçüde en aza indirir.
Mimari Karşılaştırma Matrisi
| Alt Sistem / Metrik | Önceki Temel Çizgi (v1.2.x) | Bun v1.2.22 Uygulaması | Mimari Etki |
|---|---|---|---|
| Asenkron Hata Ayıklama | Await sınırlarında bozulan standart V8/JavaScriptCore çağrı yığınları | Ağır ek yük olmaksızın yerel asenkron yığın izi koruması | Asenkron çalışma zamanı istisnaları ve işlenmemiş reddetmeler için büyük ölçüde azaltılmış MTTR. |
| WebSocket Uyumluluğu | El sıkışma aşamasında esnek alt protokol eşleşmesi | Katı RFC 6455 uyumlu alt protokol müzakeresi | Katı uyumluluk ağ geçitleri ve üçüncü taraf hizmetleriyle bağlantı hatalarını ortadan kaldırır. |
| MySQL Sürücü API'leri | Eksik veya kararsız mutasyon meta verileri (affectedRows, lastInsertRowid) |
Standart sürücü özellikleriyle eşleşen yürütme meta verilerinin tam olarak gösterilmesi | Güvenilir aşağı akış işlem doğrulamasını ve etkilenen satır yönlendirmesini etkinleştirir. |
| Çalışma Alanı Düzenlemesi | Çoklu paket betikleri için gereken manuel gezinme veya üçüncü taraf araçlar | bun run içinde yerel --workspaces bayrağı entegrasyonu |
Monorepo geliştirici deneyimini basitleştirir ve görev yürütme hatlarını standartlaştırır. |
Sonlandırıcı Değişiklikler ve Geçiş Uyarıları
Bun v1.2.22, önceki v1.2.x sürümleriyle tamamen geriye dönük uyumludur, yani mevcut uygulamalar kod yeniden yazma gerektirmeden yükseltme yapabilir. Bununla birlikte, ekipler daha katı WebSocket alt protokol müzakeresini (RFC 6455) ve MySQL adaptör güncellemelerini gözden geçirmelidir. Arka ucunuz daha önce esnek alt protokol ayrıştırmasına veya eksik mutasyon meta verilerine dayanıyorsa, yeni uyumluluk kontrolleri ve veri özellikleri örtük varsayımları ortaya çıkarabilir. Ek olarak, güncellenen paketleyici küçültme kurallarını işlev adı kaldırma konusunda kullanan ekipler, Function.name'e dayanan çalışma zamanı yansıtma mantığının üretim yapılarında bozulmadığını doğrulamalıdır.
Adım Adım Yükseltme Kılavuzu
Bun v1.2.22'ye yükseltmek saniyeler sürer. Ortamınızı modernize etmek için şu adımları izleyin:
- Bun kurulumunuzu yükseltin resmi kurulum betiği aracılığıyla:
bun upgrade - Sürümü doğrulayın terminalinizde ikili dosyanın doğru şekilde güncellendiğinden emin olmak için:
bun --version # Beklenen çıktı: 1.2.22 - Yeni çalışma alanı yürütme bayrağından yararlanın kök
package.jsondosyanızda veya CLI betiklerinizde monoreponuzda görevler çalıştırmak için:bun run --workspaces build
