Perry
it
v0.5.306 — GC generazionale + tape JSON lazy di default, più veloce di Node e Bun nella maggior parte dei benchmark

Un solo codice. Ogni piattaforma.
Prestazioni native.

Perry compila TypeScript in applicazioni GUI e CLI native su macOS, iPadOS, iOS, Android, Linux, Windows, watchOS, tvOS, WebAssembly e il Web. Nessun runtime. Nessun Electron. Solo binari nativi.

terminal
$ perry compile main.ts
Compilazione di main.ts...
✓ Eseguibile compilato: main (2,3 MB)

$ ./main
Hello, World!
10
Target
25+
Widget UI nativi
<50 ms
Tempo di avvio
App Store
Pronto

Perché Perry?

Tutto ciò che serve per compilare TypeScript in applicazioni native

noRuntime
fastCompilation
smallBinaries
deterministicBuilds
stdLib
v8Runtime
widgets
plugins
threading
i18n

Guarda cosa le persone costruiscono

App native reali, compilate da TypeScript. Niente Electron, niente web view — solo UI nativa su ogni piattaforma.

Mango

Mango

GUI MongoDB nativa — costruita interamente in TypeScript

macOSLinuxWindows
Mango — document editor
Mango — query explorer
Hone

Hone

Editor di codice nativo con IA — da TypeScript a binario nativo

macOSiOSWeb
Hone — native AI code editor

Nativo su ogni piattaforma

Perry compila il tuo TypeScript in framework UI nativi, WebAssembly e JavaScript — niente web view, niente Electron. Veri widget nativi su ogni piattaforma, più il web.

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

Dal codice all'App Store

Perry non solo compila la tua app — la mette nelle mani dei tuoi utenti.

perry compileCompila e firma
perry publishImpacchetta e invia
Store e downloadApp Store, Play Store, diretto
perry verifyTesta ogni piattaforma

Compila e firma

Build multipiattaforma con un solo comando. La firma del codice per macOS, iOS, Android e Windows viene gestita per te. Niente più lotte con i profili di provisioning Xcode o i keystore Android.

Distribuisci

Pubblica sull'App Store, Play Store o distribuisci download diretti. Perry Publish gestisce il packaging, la notarizzazione e l'invio.

Verifica

Powered by Geisterhand. Test UI automatizzati su tutte le 6 piattaforme. Sappi che la tua app funziona ovunque prima che i tuoi utenti te lo facciano notare.

Gratuito per i progetti open source. Piani per i team → /publish

Confronto framework

L'unico framework che soddisfa ogni requisito

TypeScript compilato in codice nativo. Veri widget di piattaforma. Zero overhead runtime.

FrameworkLinguaggioCodice nativoWidget nativiOverhead runtime
PerryTypeScript✓ Compilato nativo✓ Veri widget di piattaforma✓ Zero overhead runtime
React NativeJS / TSJS bridgeParzialeJS engine + bridge
FlutterDartAOTNessuna UI condivisaDart VM
ElectronJS / TSChromium runtimeHTML mimicsChromium + Node

Scrivi TypeScript, distribuisci nativo

Usa la sintassi e le API TypeScript familiari. Perry fa il resto.

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

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

Confronto delle prestazioni

La compilazione nativa offre un'efficienza senza pari

Dimensione binario
1.8 MB
Bun 96 MB · Node 110 MB
Tempo di avvio
<50 ms
Bun ~200 ms · Node ~800 ms
Dipendenze runtime
Nessuna
Bun + Node need runtimes
Overhead memoria
Minimo
Bun ~80 MB · Node ~120 MB

Inizia

Installa Perry e inizia a compilare TypeScript in eseguibili nativi

Homebrew (macOS)

brew install perry-ts/perry
Richiede Homebrew. Supporta macOS arm64 e x86_64.

APT (Debian/Ubuntu)

apt-get install perry
Supporta Linux x86_64 e arm64.

Windows (winget)

scoop install perry-ts/perry
Richiede Windows Package Manager. Supporta Windows x86_64 e arm64.

Supporto delle funzionalità

Copertura completa delle API TypeScript e Node.js

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
Supporto completo
Parziale

Oltre 30 pacchetti npm nativi

Pacchetti npm popolari reimplementati in Rust nativo. Nessun npm install, nessun node_modules, solo codice nativo veloce.

Database

mysql2pgmongodbbetter-sqlite3ioredis

Sicurezza

bcryptargon2jsonwebtokencrypto

HTTP

httphttpsaxiosnode-fetchwsnodemailer

Elaborazione dati

cheeriosharpzliblodash

Data e ora

dayjsmomentdate-fnsnode-cron

Utilità

uuidnanoidslugifyvalidatordotenvrate-limiter-flexible
Basta importare e usare — Perry utilizza automaticamente l'implementazione nativa

Come funziona

Dal codice sorgente TypeScript all'eseguibile nativo in pochi secondi

TypeScriptFile .ts
SWC
ParserParsing veloce
HIR
TrasformazioneMonomorphization
LLVM
CodegenCodice macchina
EseguibileBinario da 2-5 MB

Vuoi sapere come funziona il compilatore sotto il cofano? Meccanismi interni del compilatore