Perry
tr
v0.5.306 — kuşaksal GC + lazy JSON tape varsayılan, çoğu benchmark'ta Node ve Bun'dan hızlı

Tek Kod Tabanı. Her Platform.
Yerel Performans.

Perry, TypeScript'i macOS, iPadOS, iOS, Android, Linux, Windows, watchOS, tvOS, WebAssembly ve Web üzerinde yerel GUI ve CLI uygulamalarına derler. Runtime yok. Electron yok. Sadece yerel ikili dosyalar.

terminal
$ perry compile main.ts
main.ts derleniyor...
✓ Derlenen çalıştırılabilir dosya: main (2,3 MB)

$ ./main
Hello, World!
10
Hedefler
25+
Yerel UI widget'ları
<50 ms
Başlatma süresi
App Store
Hazır

Neden Perry?

TypeScript'i yerel uygulamalara derlemek için ihtiyacınız olan her şey

noRuntime
fastCompilation
smallBinaries
deterministicBuilds
stdLib
v8Runtime
widgets
plugins
threading
i18n

İnsanların neler ürettiğini görün

TypeScript'ten derlenen gerçek native uygulamalar. Electron yok, web view yok — her platformda native UI.

Mango

Mango

Native MongoDB GUI — tamamen TypeScript ile yapılmış

macOSLinuxWindows
Mango — document editor
Mango — query explorer
Hone

Hone

Native AI destekli kod editörü — TypeScript'ten native binary'ye

macOSiOSWeb
Hone — native AI code editor

Her Platformda Yerel

Perry, TypeScript'inizi yerel UI framework'lerine, WebAssembly'e ve JavaScript'e derler — web view değil, Electron değil. Her platformda gerçek yerel widget'lar, artı web.

🍎
macOS
Kararlı
📱
iOS
Kararlı
📲
iPadOS
Kararlı
watchOS
Kararlı
📺
tvOS
Kararlı
🤖
Android
Kararlı
🐧
Linux
Kararlı
🪟
Windows
Kararlı
🌐
Wasm
Kararlı
💻
Web
Kararlı

Koddan App Store'a

Perry sadece uygulamanızı derlemez — kullanıcılarınızın eline ulaştırır.

perry compileDerle ve imzala
perry publishPaketle ve gönder
Mağazalar ve İndirmelerApp Store, Play Store, doğrudan
perry verifyHer platformu test et

Derle ve İmzala

Tek komutla çapraz platform derlemeleri. macOS, iOS, Android ve Windows için kod imzalama sizin için halledilir. Xcode sağlama profilleri veya Android keystore'ları ile uğraşmaya gerek yok.

Dağıt

App Store, Play Store'a gönderin veya doğrudan indirme sunun. Perry Publish paketleme, noter onayı ve gönderimi yönetir.

Doğrula

Geisterhand tarafından desteklenir. 6 platformun tamamında otomatik UI testleri. Kullanıcılarınız size söylemeden önce uygulamanızın her yerde çalıştığından emin olun.

Açık kaynak projeler için ücretsiz. Takımlar için planlar → /publish

Framework Karşılaştırması

Her kutuyu işaretleyen tek framework

TypeScript yerel koda derlendi. Gerçek platform widget'ları. Sıfır runtime yükü.

FrameworkDilYerel KodYerel Widget'larRuntime Yükü
PerryTypeScript✓ Yerel derlenmiş✓ Gerçek platform widget'ları✓ Sıfır runtime yükü
React NativeJS / TSJS bridgeKısmiJS engine + bridge
FlutterDartAOTPaylaşılan UI yokDart VM
ElectronJS / TSChromium runtimeHTML mimicsChromium + Node

TypeScript Yaz, Yerel Gönder

Tanıdık TypeScript sözdizimi ve API'lerini kullanın. Perry gerisini halleder.

hello.ts
// hello.ts
const greeting = "Hello, World!";
console.log(greeting);

// Compiles to ~2MB native executable
// No runtime needed!
$ perry build hello.ts
Yerel ikili dosya

Performans Karşılaştırması

Yerel derleme benzersiz verimlilik sunar

İkili Dosya Boyutu
1.8 MB
Bun 96 MB · Node 110 MB
Başlatma Süresi
<50 ms
Bun ~200 ms · Node ~800 ms
Runtime Bağımlılıkları
Yok
Bun + Node need runtimes
Bellek Yükü
Minimal
Bun ~80 MB · Node ~120 MB

Başlayın

Perry'yi kurun ve TypeScript'i yerel çalıştırılabilir dosyalara derlemeye başlayın

Homebrew (macOS)

brew install perry-ts/perry
Homebrew gerektirir. macOS arm64 ve x86_64 desteklenir.

APT (Debian/Ubuntu)

apt-get install perry
x86_64 ve arm64 Linux desteklenir.

Windows (winget)

scoop install perry-ts/perry
Windows Paket Yöneticisi gerektirir. x86_64 ve arm64 Windows desteklenir.

Özellik Desteği

Kapsamlı TypeScript ve Node.js API kapsama alanı

Core Language

  • Numbers64-bit floating point (f64)
  • StringsUTF-8, all common methods
  • Booleanstrue/false, logical operators
  • ArraysTyped and mixed-type arrays
  • ObjectsObject literals and field access
  • BigInt256-bit integer support
  • EnumsNumeric and string enums

Functions

  • Function DeclarationNamed functions
  • Arrow Functions() => {} syntax
  • Default ParametersParameters with defaults
  • Rest Parameters...args syntax
  • ClosuresIncluding mutable captures
  • Higher-OrderFunctions as arguments/returns
  • Async/AwaitAsync function support

Classes

  • Class DeclarationBasic class syntax
  • ConstructorsWith parameters
  • Private Fields (#)ES2022 #privateField syntax
  • Static Methods/FieldsClass-level members
  • Getters/Settersget/set accessors
  • Inheritanceextends keyword
  • Super Callssuper() constructor calls

Type System

  • Type AnnotationsExplicit type declarations
  • Type InferenceAutomatic type detection
  • GenericsMonomorphization (like Rust)
  • InterfacesInterface declarations
  • Union Typesstring | number support
  • Type Guardstypeof operator
  • Type Aliasestype X = ... declarations

Standard Library

  • fsreadFileSync, writeFileSync, existsSync, etc.
  • pathjoin, dirname, basename, extname, resolve
  • cryptorandomBytes, randomUUID, sha256, md5
  • osplatform, arch, hostname, memory info
  • Bufferfrom, alloc, toString, slice, copy
  • child_processexecSync, spawnSync
  • JSON/Math/DateFull implementations
Tam Destek
Kısmi

30+ Yerel npm Paketi

Popüler npm paketleri yerel Rust'ta yeniden implemente edildi. npm install yok, node_modules yok, sadece hızlı yerel kod.

Veritabanı

mysql2pgmongodbbetter-sqlite3ioredis

Güvenlik

bcryptargon2jsonwebtokencrypto

HTTP

httphttpsaxiosnode-fetchwsnodemailer

Veri İşleme

cheeriosharpzliblodash

Tarih ve Saat

dayjsmomentdate-fnsnode-cron

Yardımcılar

uuidnanoidslugifyvalidatordotenvrate-limiter-flexible
Sadece içe aktarın ve kullanın — Perry otomatik olarak yerel implementasyonu kullanır

Nasıl Çalışır

TypeScript kaynağından yerel çalıştırılabilir dosyaya saniyeler içinde

TypeScript.ts dosyaları
SWC
AyrıştırıcıHızlı ayrıştırma
HIR
DönüşümMonomorphization
LLVM
Kod ÜretimiMakine kodu
Çalıştırılabilir2-5 MB ikili dosya

Derleyicinin kaputun altında nasıl çalıştığını öğrenmek ister misiniz? Derleyici iç yapısı