2 puan yazan dopeflamingo 3 시간 전 | Henüz yorum yok. | WhatsApp'ta paylaş

Mevcut TypeScript geliştirme paradigması, yüksek seviyeli bir soyutlama olan TS kodunu JavaScript'e transpile edip ardından bunu V8 veya JavaScriptCore gibi ağır JIT çalışma zamanı motorları (Node.js, Bun, Deno vb.) üzerinde çalıştırmayı fiilen standart kabul ediyordu.

Açık kaynak dünyasında kısa süre önce ortaya çıkan Perry ise bu geleneksel çalışma zamanı modelini tamamen ortadan kaldırıp TypeScript kodunu doğrudan standalone yerel ikiliye derlemeyi hedefleyen, Rust tabanlı Native-First bir derleyici.


💡 Temel mimari ve özellikler

  • No Runtime (sıfır çalışma zamanı): V8 motoru, Electron veya JVM gibi ağır ara katmanlar olmadan TS kodunu SWC ile parse eder ve LLVM altyapısı üzerinden hedef platformun makine koduna doğrudan derler.

  • Tek kaynakla çoklu platform derlemesi: Tek bir TypeScript kod tabanıyla macOS, iOS, Android, Linux ve Windows için ikililer üretir.

    Reklam
  • True TypeScript Support: AssemblyScript gibi 'TS benzeri ayrı bir dil' değil, Strict Mode temelli gerçek TypeScript ekosistemini desteklemeyi amaçlar.

  • Ultra hafif UI framework uyumluluğu: Yalnızca birkaç MB düzeyinde ikili boyutu ve 0ms'ye yakın, saniyenin altında cold start süresi sunar. SwiftUI, GTK4, WinUI gibi platformun yerel GUI'leriyle birleşebildiği gibi, kendi React renderer'ı üzerinden JSX yazımı da mümkündür.


🛠️ Geliştirme durumu ve sınırlamalar (Hacker News geri bildirimleri yansıtılmıştır)
Son dönemde HN gibi platformlarda çok konuşulan bir proje olduğundan, prodüksiyon seviyesine ulaşması için çözmesi gereken konular da açık biçimde tartışılıyor.

  • Dinamik JS özelliklerine kısıt: Nesnelere çalışma zamanında keyfi alanlar/metotlar eklemek veya prototype'ı değiştirmek gibi dinamik JavaScript tarzları, statik derleme yapısı gereği desteklenmiyor; bunun yerine katı ve deterministik bir TS alt kümesi üzerinde çalışıyor.

    Reklam
  • Node.js yerleşik modüllerinin emülasyonu: Şu anda hyper, rustls, tokio gibi Rust ekosistemini temel alarak Node.js'in HTTP standart kütüphanesini birebir emüle ediyor. Fastify gibi bazı modülleri derlemeyi başarmış ve hızla gelişiyor olsa da, Express gibi dinamik import'ların iç içe geçtiği karmaşık ekosistem kütüphaneleriyle %100 uyumluluk hâlâ alfa aşamasında çözülmesi gereken bir konu.


# Kullanımı son derece basit  
$ perry compile src/main.ts -o myapp  
$ ./myapp  # bağımlılığı olmayan saf yerel ikiliyi çalıştır  

Web ekosistemine sıkışıp kalmış TypeScript'i sistem programlama ve ultra hafif yerel uygulamalar alanına genişletme girişimi olarak, yüksek performanslı sistem mimarileri veya LLVM derleyici pipeline'larıyla ilgilenenlerin ilgiyle takip edebileceği bir proje.

GitHub: https://github.com/PerryTS/perry

Henüz yorum yok.

Henüz yorum yok.