
Cloudflare, TypeScript derleyicisinin Rust taşıması tsrs'yi tanıtıyor
Cloudflare, VoidZero ve Owner.com'daki Max Schwenk, TypeScript derleyicisinin Rust taşıması tsrs'i TypeScript ekibiyle birlikte, Oxc araç zinciri içinde geliştiriyor; amaç denetimleri hızlandırmak ve bellek kullanımını azaltmak.
TypeScript'e sadık bir Rust taşıması
Cloudflare ve VoidZero, Owner.com'daki Max Schwenk ile birlikte tsrs üzerinde çalışıyor; tsrs, TypeScript derleyicisinin bir Rust taşımasıdır. Proje, Oxc JavaScript derleyici araç zincirinin bir parçası olarak inkübe ediliyor ve TypeScript ekibiyle yakın iş birliği içinde geliştiriliyor. Belirtilen amaç, geliştiricilerin kod denetimlerini beklemek için daha az zaman harcamasına ve daha çok zaman geliştirmeye ayırmasına yardımcı olmak ve TypeScript'i daha hızlı ve daha bellek verimli hale getirmektir.
Ekipler, bunun TypeScript'in bir çatallanması olmadığını söylüyor. TypeScript ekibinin dil tasarımı ve yönü üzerinde tam kontrolü koruması gerektiğini ve bir Rust taşımasının yukarı akış kararlarını yakından takip etmesi gerektiğini, aksi halde uyumsuzluk riski taşıdığını söylüyorlar. Rust ile yazılmış TypeScript, sadık bir taşıma olmayı hedefliyor. Deneysel bir sürüm npm üzerinden 'npm install tsrs' ile yüklenebilir ve 'npx tsrs' ile çalıştırılabilir.
Performans ve bellek iddiaları
Ekiplerin paylaştığı erken kıyaslamalar, tsrs'in aynı sayıda tip denetimi çalışanı kullanıldığında TypeScript 7.0'a kıyasla en fazla 8 kat daha hızlı çalıştığını ve yaklaşık %70 daha az bellek kullandığını gösteriyor. Karşılaştırmanın aynı yapılandırmayı eşleştirmek için TypeScript ekibiyle birlikte yapıldığını söylüyorlar. TypeScript 7.1 beta, TypeScript 7.0'a kıyasla zaten en fazla 2,5 kat daha hızlı ve bu iyileştirmelerden bazıları tsrs'ten yukarı akışa aktarıldı.
Varsayılan olarak tsrs, makine türüne bağlı uyarlanır bir yapılandırma ile geliyor. Bu varsayılan daha fazla bellek kullanıyor ama daha da hızlı. Ekipler ayrıca bazı herkese açık kıyaslamaların TypeScript varsayılanlarına kıyasla daha büyük makine türleri veya farklı seçenekler kullandığını ve bunun performans iddialarını değiştirebileceğini belirtiyor.
Rust neden hızın ötesinde önemli
Ekipler, önceki taşıma girişimlerinin sınırlı başarıya sahip olduğunu, TypeScript ekibinin JavaScript'ten Go'ya taşımasının başarılı olan olduğunu söylüyor. Daha hızlı TypeScript için hâlâ talep olduğunu savunuyorlar. Rust, WebAssembly için daha iyi bir uyum olarak sunuluyor çünkü Go'nun WebAssembly'e derlenmesi Go'nun çöp toplayıcısını da getiriyor; Rust'un bellek modeli ise bir WebAssembly konuğu ile ana makine arasında doğrudan bellek etkileşimlerine olanak tanıyor.
Cloudflare Workers uzun süredir WebAssembly'i destekliyor ve şirket son olarak wasm-bindgen için bir Emscripten hedefi aracılığıyla Workers'ta doğal Rust desteğini duyurdu. Ekipler, küçük bellek ayak izinin, derleme ve dağıtım sistemlerini Workers üzerinde sıkı döngülerde çalıştırmayı ve hatta Cloudflare üzerinde, tarayıcıda, gömülü cihazlarda veya IoT uygulamalarında korumalı geliştirme araç zincirlerini çalıştırmayı pratik hale getirdiğini söylüyor.
Bakım ve sonraki adımlar
Cloudflare, Language Server Protocol ve içerik eşleyiciler de dahil olmak üzere TypeScript özelliklerini destekleyen tek bir paket halinde tsc-rs ve tsrs'i birleştirmek için Theo Browne ile çalıştığını söylüyor. Bakım planı Vinext modeline göre kurgulanmış: her sabah bir ajan değişiklikleri gözden geçirir, farkları alır ve izleme sorunları açar; her gece Vinext'e karşı Next.js test paketi çalıştırılarak bir uyumluluk matrisi yeniden oluşturulur. Boşluklar ortaya çıktığında, ajanlar bir yeniden üretme oluşturabilir, ilgili testleri taşıyabilir ve düzeltmeler önerebilir.
Ekipler, yukarı akış TypeScript'ten sapmamaya özen göstereceklerini ve performans iyileştirmelerini TypeScript Go kod tabanına geri katmayı deneyeceklerini söylüyor. Tanılama iletilerinin yazdırılma sırası gibi mevcut farkları kabul ediyorlar ve kararlı bir sürüm yayımlanana kadar bu farkları en aza indirmeyi hedefliyorlar. Cloudflare ayrıca Oxc ekibinin hız, bellek kullanımı ve bakım kolaylığı için yeniden düzenleme yaptığını ve daha derin tsrs entegrasyonlarının Oxlint'te tipleri dikkate alan lint kurallarını içerebileceğini söylüyor.
Kaynaklar: Cloudflare · The New Stack
SiTech — AI destekli web geliştirme
Hızlı ve modern web siteleri kuruyor, AI'yı gerçek iş akışlarına taşıyoruz. Projeniz veya sorunuz mu var? Yardımcı olmaktan mutluluk duyarız.