Karşılaştırmalara geri dön
TypeScript çalışma zamanı

Perry vs Deno

Deno; V8 üzerine inşa edilmiş, birinci sınıf TypeScript desteği, izin tabanlı bir güvenlik modeli ve V8'i uygulamanızla birlikte paketleyerek tek bir çalıştırılabilir dosya üreten bir `deno compile` komutu sunan modern bir JavaScript ve TypeScript çalışma zamanıdır. Perry, TypeScript'i doğrudan yerel makine koduna derler — çıktıda V8 yok, çalışma zamanı katmanı yok, sadece küçük bir yerel ikili dosya.

Deno nedir?

Deno; Rust ile, V8 ve Tokio'nun üzerine inşa edilmiş bir TypeScript ve JavaScript çalışma zamanıdır. `.ts` kaynağını doğrudan çalıştırır, yerleşik araçlara sahiptir (formatlayıcı, linter, test koşturucusu, dil sunucusu) ve ağ, dosya ve ortam erişimi için açık izinler gerektiren bir izin modeli kullanır. `deno compile`, kodunuzla birlikte Deno çalışma zamanını (V8 dahil) paketleyerek bağımsız bir çalıştırılabilir dosya üretir. Deno; Linux, macOS ve Windows'u x64 ve arm64 üzerinde hedefler.

Perry nedir?

Perry, Rust ile yazılmış yerel bir TypeScript derleyicisidir. TypeScript'i LLVM aracılığıyla doğrudan yerel makine koduna derler — V8 yok, JIT yok, çalışma zamanı yok. Çıktı tek bir ikili dosyadır; yerel kod için tipik olarak birkaç yüz KB ile birkaç MB arasında, JS motoru gereken npm paketleri için isteğe bağlı gömülü V8 çalışma zamanını seçerseniz daha büyüktür.

Yan yana

ÖzellikPerryDeno
ÇıktıYerel makine kodu (LLVM)Kodunuz + Deno çalışma zamanı (V8) paketlenmiş
İkili dosyada JavaScript motoruVarsayılan olarak yok; isteğe bağlı V8Her zaman V8
Hello-world ikili dosya boyutu~330 KB~80–100 MB (V8 dahil)
JITHayır (AOT derlenmiş)Evet (V8 TurboFan)
Mobil hedefleriOS, iPadOS, AndroidHayır
Watch / TV / WASM / WebwatchOS, tvOS, Wear OS, WASM, Web/JSHayır
Yerel UIYerel platform API'leri ile 25+ widgetHayır
İzin modeliStandart işletim sistemi süreç izinleriGranüler çalıştırma zamanı izinleri (--allow-net, --allow-read, vb.)
Kararlılık1.0 öncesiKararlı (1.x / 2.x)
Yazıldığı dilRustRust (V8 üzerinde)

Perry'nin kazandığı yerler

  • +Çarpıcı şekilde daha küçük ikili dosyalar. Bir Perry hello world ~330 KB. `deno compile` çıktıları V8'i içerir ve 80–100 MB aralığına çıkar.
  • +İkili dosyada JavaScript motoru yok. TypeScript'iniz çalışma zamanında V8 tarafından yorumlanmak yerine yerel makine koduna derlenir.
  • +Mobil, watch, TV, WASM ve Web hedefleri. Deno yalnızca sunucu/masaüstüdür.
  • +AppKit, UIKit, GTK4, Win32 ve JNI'ya eşlenen yerel UI widget'ları — Deno'da eşdeğeri yok.
  • +Daha hızlı soğuk başlatma. AOT-derlenmiş yerel ikili dosyalar V8 başlatma maliyeti ödemez.
  • +M1 Max üzerinde eşleştirilmiş koşullarda Perry'nin `reassoc contract` fast-math varsayılanlarının LLVM'in autovectorize etmesine ve önemsiz şekilde katlanabilir akümülatörleri katlamasına izin verdiği hesaplama mikro-benchmark liderliği (örn., loop_overhead 12 ms, math_intensive 14 ms; perry/benchmarks'a bakın).

Deno'in kazandığı yerler

  • +Uzun bir geçmişe ve aktif 2.x serisine sahip olgun, kararlı çalışma zamanı.
  • +Granüler izin modeli. Deno açık `--allow-net`, `--allow-read` vb. gerektirir — sandbox'lı betikler ve güvenilmeyen kod için faydalı.
  • +Yerleşik araçlar: formatlayıcı, linter, test koşturucusu, doc oluşturucusu, LSP — hepsi çalışma zamanında.
  • +Çalışma zamanında tam V8 ekosistemi — V8 üzerinde çalışan her şey Deno'da çalışır, uzun süreli sıcak yollardaki JIT optimizasyonları dahil.
  • +Geliştirme sırasında ayrı bir derleyici adımı olmadan birinci sınıf TypeScript, tamamen yönetilen bir tip kontrol pipeline'ı ile.
  • +Standart web platformu API'leri (fetch, Web Streams, Web Crypto) çalışma zamanında yerel olarak implemente edilir.

Perry'i ne zaman seçmeli

Küçük, hızlı başlayan bir yerel ikili dosya istiyorsanız, mobil veya başka sunucu-dışı hedeflere gönderiyorsanız, yerel UI istiyorsanız veya TypeScript'i JS motoru içermeyen bir ikili dosyaya derlemek istiyorsanız Perry'yi seçin.

Deno'i ne zaman seçmeli

Kararlı, her şey dahil bir TypeScript çalışma zamanı istiyorsanız, izin sandbox'ına değer veriyorsanız, sunucu tarafı veya betikleme iş yükleri inşa ediyorsanız ya da çalışma zamanında tam V8 ekosistemi uyumluluğuna ihtiyacınız varsa Deno'yu seçin.

Karar

Her ikisi de bir TypeScript programını tek bir ikili dosya olarak göndermenizi sağlar; fark, o ikili dosyanın içinde ne olduğudur. Deno size V8 + bir derlenmiş çalışma zamanı + izin sandbox'ı verir. Perry size motor içermeyen yerel makine kodu verir. Ekosistemin ve izin modelinin önemli olduğu sunucu tarafı ve betikleme çalışmaları için Deno daha iyi bir seçimdir. Küçük, hızlı başlayan bir ikili dosya, mobil hedefler veya yerel UI'ya ihtiyacınız olduğunda ise Perry daha iyi bir seçimdir.

Perry'yi deneyin

TypeScript'inizi bugün yerel koda derleyin.

Başlayın