deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak Cloudflare blog

Cloudflare ve VoidZero, TypeScript'i Rust'a taşıyan tsrs ile tip kontrolünde 8 kata kadar hızlanma sağlıyor

Cloudflare ve VoidZero, TypeScript ekibiyle birlikte geliştirilen ve TypeScript derleyicisinin Rust'a taşınmış hali olan tsrs'yi geliştiriyor; ilk benchmark'lar tip kontrolünde 8 kata kadar hızlanma ve yaklaşık %70 daha az bellek kullanımı gösteriyor.

Cloudflare ve VoidZero, TypeScript'i Rust'a taşıyan tsrs ile tip kontrolünde 8 kata kadar hızlanma sağlıyor

Cloudflare ve VoidZero, TypeScript'in Rust port'u olan tsrs'yi duyurdu

Cloudflare, VoidZero ve Owner.com'dan Max Schwenk ile iş birliği yaparak TypeScript derleyicisinin Rust'a taşınmış hali olan tsrs'yi duyurdu. Cloudflare blog yazısına göre proje, Oxc JavaScript derleyici araç zincirinin içinde incubate ediliyor ve TypeScript ekibiyle yakın iş birliği içinde geliştiriliyor; açıklanan hedef, geliştiricilerin tip kontrollerini beklemekle geçirdikleri süreyi azaltmak.

Bir port, bir fork değil

Cloudflare, tsrs'nin bir fork olmadığı konusunda net. Şirket, TypeScript ekibinin dilin tasarımı ve yönü üzerinde tam kontrole sahip olmaya devam etmesi gerektiğini ve bir Rust implementasyonunun bu ekibin kararlarını — bazıları netleşmesi yıllar süren kararlar — yakından takip etmek zorunda olduğunu, aksi halde uyumluluğun er ya da geç bozulacağını söylüyor. Bu nedenle tsrs, TypeScript'i orijinal implementasyonun tanımladığı şekliyle birebir yeniden üretmeyi amaçlıyor ve bunun ne anlama geldiğinde tek yetkili TypeScript ekibi.

İlk benchmark'lar

Cloudflare'ın ilk rakamlarına göre tsrs, aynı sayıda tip kontrolü worker'ı ile çalıştırıldıklarında TypeScript 7.0'a kıyasla 8 kata kadar daha hızlı ve yaklaşık %70 daha az bellek kullanıyor. Kıyas noktasının kendisi de sürekli ilerliyor: Cloudflare, TypeScript 7.1 beta'sının zaten 7.0'dan 2,5 kat daha hızlı olduğunu, bu optimizasyonların bazılarının ise başlangıçta tsrs'den geldiğini ve daha fazla katkı umulduğunu belirtiyor.

Cloudflare ayrıca, diğer TypeScript port'larına ilişkin son benchmark'ların çoğunun birebir karşılaştırmalar yerine daha güçlü makineleri ya da varsayılan olmayan ayarları yansıttığı konusunda uyarıyor ve bu rakamlar için yapılandırmaları aynı tutmak üzere TypeScript ekibiyle çalıştığını söylüyor. Varsayılan olarak tsrs, ana makineye uyum sağlayan ve ek hız karşılığında fazla bellek harcayan bir yapılandırmayla geliyor. Deneysel bir sürüm npm üzerinde mevcut: tsrs paketini kurun ve npx ile çalıştırın.

Go zaten işe yaramışken neden Rust

Cloudflare'ın anlattığına göre, TypeScript'i başka bir dile taşıma girişimlerinden yalnızca biri başarılı oldu: TypeScript ekibinin kendi gerçekleştirdiği, JavaScript'den Go'ya geçiş yapan ve önemli performans ile bellek kazançları sağlayan yeniden yazım. Rust için öne sürülen gerekçe ham hızdan çok WebAssembly ile ilgili. Wasm'a derlenen bir Go programı, Go'nun garbage collector'unu da yanında taşır; Rust'ın bellek modeli ise bir Wasm guest'i ile host'u arasında doğrudan ve sorunsuz bellek etkileşimine olanak tanır.

Bu ayrım Cloudflare için önemli, çünkü Workers uzun süredir Wasm'ı destekliyor ve yakın zamanda wasm-bindgen için yeni bir Emscripten hedefi aracılığıyla yerel Rust desteği ekledi. Küçük bir bellek ayak izi, tüm build ve deployment hatlarının Workers üzerinde çalıştırılmasını pratik hale getiriyor ve Wasm, bu ortamların bir tarayıcıda, gömülü bir cihazda ya da IoT bağlamlarında güvenle çalışmasını sağlıyor — AI agent'ların yönettiği, sandbox'lar içindeki tam geliştirme araç zincirleri dahil.

Cloudflare zamanlamayı da açıklıyor: Geçmiş taşıma girişimleri çoğunlukla işin karmaşıklığı altında başarısız oldu, ancak frontier AI modelleri artık büyük ölçekli port'ları neredeyse yardımsız, birkaç gün içinde tamamlayabiliyor; bu da özensiz fork'lardan özenli port'lara kadar her şeyi üretiyor ve daha hızlı bir TypeScript'e duyulan geniş talebi ortaya koyuyor.

Upstream ile senkron kalmak

Bakım iki hat üzerinde yürüyor. Birincisi, Cloudflare, Theo Browne ile çalışarak tsc-rs'yi tsrs'ye dahil etmek ve Language Server Protocol desteği ile content mapper'lar dahil TypeScript'in tüm özelliklerini kapsayan tek bir paket ortaya çıkarmak istiyor. İkincisi, Cloudflare'ın upstream'i olan Next.js ile senkron tuttuğu Vinext arkasındaki süreci yeniden kullanacak: Her sabah bir agent upstream değişikliklerini inceler ve takip issue'ları açar; her gece Next.js test paketi çalıştırılarak bir uyumluluk matrisi yeniden oluşturulur. Bir fark ortaya çıktığında agent'lar değişikliği iki kod tabanında da bulur, bir reproduction oluşturur, ilgili testleri taşır ve bir düzeltme önerir.

Aynı döngü TypeScript'e karşı da yürüyecek ve performans iyileştirmeleri TypeScript'in Go kod tabanına geri sunulacak, böylece yalnızca tsrs kullanıcıları değil herkes yarar sağlayacak. Bugün bazı farklar mevcut — örneğin diagnostic'lerin yazdırılma sırası — ve Cloudflare, kararlı bir sürümden önce bu farkları en aza indirmeyi hedefliyor.

Neden önemli

Tip kontrolü çoğu TypeScript iş akışının kritik yolunda yer aldığı için, çarpıcı biçimde daha hızlı ve daha yalın bir implementasyon doğrudan geri bildirim döngülerini kısaltıyor — ve upstream'e gönderilen iyileştirmeler yalnızca tsrs benimseyenlerine değil herkese yarar sağlıyor. WebAssembly boyutu, tip bilgisi olan tam araç zincirlerini tarayıcılara, edge runtime'lara ve gömülü cihazlara taşıyabilir; böylece tarayıcı içi geliştirme ortamları ve adanmış bir sunucu olmadan kod derleyip kontrol eden sandbox'lı agent'lar mümkün hale geliyor. Upstream değişikliklerini takip etmek için kullanılan agent destekli süreç de, hızlı hareket eden projelerin port'larını uyumlu tutmak için bir şablon olarak başlı başına dikkat çekici. Rolldown, Oxlint ve Oxfmt gibi JavaScript ekosistemi için Rust araçları zaten geliştiren ve platformunda 10 milyondan fazla geliştiricinin build yaptığını söyleyen Cloudflare, ileride Oxlint içinde tip bilgisi olan lint kuralları gibi daha derin entegrasyonlar da gündeme getiriyor.

  • #typescript
  • #rust
  • #cloudflare
  • #webassembly
  • #developer-tools

İlgili yazılar