Perry
id
v0.5.306 — GC generasional + lazy JSON tape default, lebih cepat dari Node dan Bun di sebagian besar benchmark

Satu Kode Sumber. Semua Platform.
Performa Native.

Perry mengompilasi TypeScript menjadi aplikasi GUI dan CLI native di macOS, iPadOS, iOS, Android, Linux, Windows, watchOS, tvOS, WebAssembly, dan Web. Tanpa runtime. Tanpa Electron. Hanya binary native.

terminal
$ perry compile main.ts
Mengompilasi main.ts...
✓ Executable terkompilasi: main (2,3 MB)

$ ./main
Hello, World!
10
Target
25+
Widget UI native
<50 ms
Waktu mulai
App Store
Siap

Mengapa Perry?

Semua yang Anda butuhkan untuk mengompilasi TypeScript menjadi aplikasi native

noRuntime
fastCompilation
smallBinaries
deterministicBuilds
stdLib
v8Runtime
widgets
plugins
threading
i18n

Lihat Apa yang Orang Bangun

Aplikasi native nyata, dikompilasi dari TypeScript. Tanpa Electron, tanpa web view — hanya UI native di setiap platform.

Mango

Mango

GUI MongoDB native — dibangun sepenuhnya dengan TypeScript

macOSLinuxWindows
Mango — document editor
Mango — query explorer
Hone

Hone

Editor kode native bertenaga AI — TypeScript ke binary native

macOSiOSWeb
Hone — native AI code editor

Native di Semua Platform

Perry mengompilasi TypeScript Anda ke framework UI native, WebAssembly, dan JavaScript — bukan web view, bukan Electron. Widget native asli di setiap platform, plus web.

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

Dari Kode ke App Store

Perry tidak hanya mengompilasi aplikasi Anda — tetapi juga mengantarkannya ke tangan pengguna.

perry compileKompilasi & tanda tangani
perry publishKemas & kirim
Toko & UnduhanApp Store, Play Store, langsung
perry verifyUji setiap platform

Build & Tanda Tangani

Build lintas platform dengan satu perintah. Penandatanganan kode untuk macOS, iOS, Android, dan Windows ditangani untuk Anda. Tidak perlu bergulat dengan provisioning profile Xcode atau keystore Android.

Distribusi

Push ke App Store, Play Store, atau kirim unduhan langsung. Perry Publish menangani pengemasan, notarisasi, dan pengiriman.

Verifikasi

Didukung oleh Geisterhand. Pengujian UI otomatis di semua 6 platform. Ketahui bahwa aplikasi Anda bekerja di mana saja sebelum pengguna memberi tahu Anda bahwa tidak.

Gratis untuk proyek open source. Paket untuk tim → /publish

Perbandingan Framework

Satu-satunya framework yang memenuhi semua kriteria

TypeScript dikompilasi ke kode native. Widget platform asli. Nol overhead runtime.

FrameworkBahasaKode NativeWidget NativeOverhead Runtime
PerryTypeScript✓ Dikompilasi native✓ Widget platform asli✓ Nol overhead runtime
React NativeJS / TSJS bridgeSebagianJS engine + bridge
FlutterDartAOTTanpa UI bersamaDart VM
ElectronJS / TSChromium runtimeHTML mimicsChromium + Node

Tulis TypeScript, Kirim Native

Gunakan sintaks dan API TypeScript yang familiar. Perry menangani sisanya.

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

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

Perbandingan Performa

Kompilasi native memberikan efisiensi tak tertandingi

Ukuran Binary
1.8 MB
Bun 96 MB · Node 110 MB
Waktu Mulai
<50 ms
Bun ~200 ms · Node ~800 ms
Dependensi Runtime
Tidak ada
Bun + Node need runtimes
Overhead Memori
Minimal
Bun ~80 MB · Node ~120 MB

Mulai

Instal Perry dan mulai mengompilasi TypeScript menjadi executable native

Homebrew (macOS)

brew install perry-ts/perry
Memerlukan Homebrew. Mendukung macOS arm64 dan x86_64.

APT (Debian/Ubuntu)

apt-get install perry
Mendukung Linux x86_64 dan arm64.

Windows (winget)

scoop install perry-ts/perry
Memerlukan Windows Package Manager. Mendukung Windows x86_64 dan arm64.

Dukungan Fitur

Cakupan API TypeScript dan Node.js yang komprehensif

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
Dukungan Penuh
Sebagian

30+ Paket npm Native

Paket npm populer diimplementasi ulang dalam Rust native. Tanpa npm install, tanpa node_modules, hanya kode native yang cepat.

Database

mysql2pgmongodbbetter-sqlite3ioredis

Keamanan

bcryptargon2jsonwebtokencrypto

HTTP

httphttpsaxiosnode-fetchwsnodemailer

Pemrosesan Data

cheeriosharpzliblodash

Tanggal & Waktu

dayjsmomentdate-fnsnode-cron

Utilitas

uuidnanoidslugifyvalidatordotenvrate-limiter-flexible
Cukup import dan gunakan — Perry secara otomatis menggunakan implementasi native

Cara Kerjanya

Dari kode sumber TypeScript ke executable native dalam hitungan detik

TypeScriptFile .ts
SWC
ParserParsing cepat
HIR
TransformasiMonomorphization
LLVM
CodegenKode mesin
ExecutableBinary 2-5 MB

Ingin tahu bagaimana kompiler bekerja di balik layar? Struktur internal kompiler