Perry
es
v0.5.306 — GC generacional + cinta JSON perezosa por defecto, más rápido que Node y Bun en la mayoría de benchmarks

Un código fuente. Todas las plataformas.
Rendimiento nativo.

Perry compila TypeScript a aplicaciones nativas GUI y CLI en macOS, iPadOS, iOS, Android, Linux, Windows, watchOS, tvOS, WebAssembly y la Web. Sin runtime. Sin Electron. Solo binarios nativos.

terminal
$ perry compile main.ts
Compilando main.ts...
✓ Ejecutable compilado: main (2,3 MB)

$ ./main
Hello, World!
10
Plataformas
25+
Widgets UI nativos
<50 ms
Tiempo de inicio
App Store
Listo

¿Por qué Perry?

Todo lo que necesitas para compilar TypeScript a aplicaciones nativas

noRuntime
fastCompilation
smallBinaries
deterministicBuilds
stdLib
v8Runtime
widgets
plugins
threading
i18n

Mira lo que la gente construye

Apps nativas reales, compiladas desde TypeScript. Sin Electron, sin web views — solo UI nativa en cada plataforma.

Mango

Mango

GUI nativa para MongoDB — construida completamente en TypeScript

macOSLinuxWindows
Mango — document editor
Mango — query explorer
Hone

Hone

Editor de código nativo con IA — TypeScript a binario nativo

macOSiOSWeb
Hone — native AI code editor

Nativo en todas las plataformas

Perry compila tu TypeScript a frameworks de UI nativos, WebAssembly y JavaScript — no web views, no Electron. Widgets nativos reales en cada plataforma, más la web.

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

Del código al App Store

Perry no solo compila tu app — la pone en las manos de tus usuarios.

perry compileCompilar y firmar
perry publishEmpaquetar y enviar
Tiendas y descargasApp Store, Play Store, directa
perry verifyProbar en cada plataforma

Compilar y firmar

Builds multiplataforma con un solo comando. La firma de código para macOS, iOS, Android y Windows se maneja por ti. Sin luchar con perfiles de aprovisionamiento de Xcode o keystores de Android.

Distribuir

Publica en el App Store, Play Store o envía descargas directas. Perry Publish maneja el empaquetado, la notarización y el envío.

Verificar

Impulsado por Geisterhand. Pruebas UI automatizadas en las 6 plataformas. Sabe que tu app funciona en todas partes antes de que tus usuarios te digan lo contrario.

Gratis para proyectos de código abierto. Planes para equipos → /publish

Comparación de frameworks

El único framework que cumple todos los requisitos

TypeScript compilado a código nativo. Widgets reales de la plataforma. Sin overhead de runtime.

FrameworkLenguajeCódigo nativoWidgets nativosOverhead de runtime
PerryTypeScript✓ Compilado nativo✓ Widgets reales de la plataforma✓ Cero overhead de runtime
React NativeJS / TSJS bridgeParcialJS engine + bridge
FlutterDartAOTSin UI compartidaDart VM
ElectronJS / TSChromium runtimeHTML mimicsChromium + Node

Escribe TypeScript, envía nativo

Usa la sintaxis y APIs familiares de TypeScript. Perry se encarga del 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

Comparación de rendimiento

La compilación nativa ofrece eficiencia incomparable

Tamaño del binario
1.8 MB
Bun 96 MB · Node 110 MB
Tiempo de inicio
<50 ms
Bun ~200 ms · Node ~800 ms
Dependencias de runtime
Ninguna
Bun + Node need runtimes
Overhead de memoria
Mínimo
Bun ~80 MB · Node ~120 MB

Comenzar

Instala Perry y empieza a compilar TypeScript a ejecutables nativos

Homebrew (macOS)

brew install perry-ts/perry
Requiere Homebrew. Compatible con macOS arm64 y x86_64.

APT (Debian/Ubuntu)

apt-get install perry
Compatible con Linux x86_64 y arm64.

Windows (winget)

scoop install perry-ts/perry
Requiere Windows Package Manager. Compatible con Windows x86_64 y arm64.

Soporte de características

Cobertura completa de APIs de TypeScript y 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
Soporte completo
Parcial

Más de 30 paquetes npm nativos

Paquetes npm populares reimplementados en Rust nativo. Sin npm install, sin node_modules, solo código nativo rápido.

Base de datos

mysql2pgmongodbbetter-sqlite3ioredis

Seguridad

bcryptargon2jsonwebtokencrypto

HTTP

httphttpsaxiosnode-fetchwsnodemailer

Procesamiento de datos

cheeriosharpzliblodash

Fecha y hora

dayjsmomentdate-fnsnode-cron

Utilidades

uuidnanoidslugifyvalidatordotenvrate-limiter-flexible
Solo importa y usa — Perry utiliza automáticamente la implementación nativa

Cómo funciona

De código fuente TypeScript a ejecutable nativo en segundos

TypeScriptArchivos .ts
SWC
ParserAnálisis rápido
HIR
TransformaciónMonomorphization
LLVM
CodegenCódigo máquina
EjecutableBinario de 2-5 MB

¿Quieres saber cómo funciona el compilador internamente? Internos del compilador