İçeriğe geç
edumintsBlog
Web & Frontend3 dk okuma

Tsrs: TypeScript'in Rust'a Taşınması (Port Edilmesi)

Kaynak: Hacker News

Paylaş
Web & FrontendEdumints Blog
İçindekiler 4 başlık

Cloudflare ve VoidZero, Owner.com'dan Max Schwenk ile birlikte TypeScript derleyicisinin Rust diline taşınmış (port edilmiş) bir versiyonu olan tsrs üzerinde çalışıyor. TypeScript ekibiyle yakın iş birliği içinde yürütülen bu proje, Oxc JavaScript derleyici araç zincirinin bir parçası olarak geliştiriliyor. Temel amaç, geliştiricilerin kodlarının tip kontrolünden (type check) geçmesini beklerken harcadıkları süreyi azaltmak ve üretime daha fazla zaman ayırmalarını sağlamaktır. TypeScript'i daha hızlı ve bellek açısından daha verimli hale getirmek, aynı zamanda tam kapsamlı geliştirme ortamlarının doğrudan tarayıcılar içinde çalışabilmesinin de önünü açıyor.

Burada kritik bir nokta var: Bu çalışma TypeScript'i çatallamak (fork etmek) anlamına gelmiyor. Dilin tasarımı ve geleceği konusundaki tüm kontrolün TypeScript ekibinde kalması hedefleniyor. Bir Rust portunun uzun vadede uyumsuz hale gelmemesi için orijinal uygulamayı ve TypeScript ekibinin kararlarını birebir takip etmesi şarttır.

Performans ve Bellek İyileştirmeleri#

TypeScript'in Rust portuna ait ilk kıyaslama (benchmark) sonuçları oldukça umut verici:

  • tsrs, aynı sayıda tip kontrol işçisi (worker) kullanıldığında TypeScript 7.0'a kıyasla 8 kata kadar daha hızlı çalışıyor ve ~%70 daha az bellek tüketiyor.
  • TypeScript 7.1 beta sürümü, bir kısmı doğrudan tsrs projesinden aktarılan (upstreamed) optimizasyonlar sayesinde TypeScript 7.0'a göre 2.5 kata kadar hız artışı sunuyor.
  • Farklı makine tipleri ve varsayılan dışı ayarlarla yapılan yanıltıcı kıyaslamaların aksine, bu testler TypeScript ekibiyle birlikte tamamen aynı yapılandırmalar kullanılarak doğrulandı.
  • Varsayılan olarak tsrs, makine tipine göre uyarlanabilen (adaptive), biraz daha fazla bellek kullanan ancak çok daha yüksek hız sunan bir yapılandırma ile geliyor.

tsrs'i Deneyin#

Rust ile yazılan TypeScript, orijinal derleyiciye sadık bir port olmayı hedefliyor. Deneysel sürümü npm üzerinden kurarak projelerinizde hemen test edebilirsiniz:

npm install tsrs
npx tsrs

Neden Şimdi?#

Yıllar boyunca TypeScript'i başka dillere taşıma girişimleri oldu ancak karmaşıklığı nedeniyle yalnızca TypeScript ekibinin JavaScript'ten Go'ya yaptığı port başarılı olabildi. Bugün ise öncü (frontier) yapay zeka modelleri, büyük ölçekli kod taşıma işlemlerini neredeyse bağımsız olarak birkaç gün içinde gerçekleştirebiliyor. Bu durum Rust ve C++ dillerinde çeşitli uyarlamaların doğmasını sağladı ve daha hızlı bir TypeScript'e olan yoğun talebi kanıtladı.

Neden Rust?#

TypeScript'in Go portu halihazırda 10 kat hız artışı ve yüksek bellek verimliliği sağlamışken neden Rust tercih ediliyor? Cevap sadece hız değil, WebAssembly (Wasm) desteğidir:

  • Rust + Wasm uyumu: Bir Go programını Wasm'a derlediğinizde, Go'nun çöp toplayıcısını (garbage collector) da beraberinde derlemeniz gerekir.
  • Bellek yönetimi: Rust'ın bellek yönetim modeli, çöp toplayıcı yükü olmadan doğrudan ve hafif Wasm çıktıları üretmeyi mümkün kılar.
  • Geliştiriciler için pratik çıkarım: Derleyicilerin Rust ve Wasm ile tarayıcıya taşınması, bulut tabanlı IDE'lerin ve eğitim platformlarının sunucu maliyetini düşürürken, büyük projelerde CI/CD süreçlerini saniyelere indirir.

Kaynak ve atıf

Bu yazı, Hacker News üzerinde yayımlanan içerikten yararlanılarak Edumints tarafından yapay zekâ desteğiyle Türkçe hazırlandı. Ayrıntılar ve yazarların kendi anlatımı için orijinaline bakabilirsin:

  • blog.cloudflare.com/typescript-rust-port