Perry
de
v0.5.306 — Generationen-GC + Lazy-JSON-Tape als Default, schneller als Node und Bun in den meisten Benchmarks

Eine Codebasis. Jede Plattform.
Native Performance.

Perry kompiliert TypeScript zu nativen GUI- und CLI-Apps auf macOS, iPadOS, iOS, Android, Linux, Windows, watchOS, tvOS, WebAssembly und dem Web. Keine Laufzeitumgebung. Kein Electron. Einfach native Binaries.

terminal
$ perry compile main.ts
Kompiliere main.ts...
✓ Kompilierte Datei: main (2,3 MB)

$ ./main
Hello, World!
10
Zielplattformen
25+
Native UI-Widgets
<50 ms
Startzeit
App Store
Bereit

Warum Perry?

Alles, was du brauchst, um TypeScript zu nativen Anwendungen zu kompilieren

noRuntime
fastCompilation
smallBinaries
deterministicBuilds
stdLib
v8Runtime
widgets
plugins
threading
i18n

Was Menschen damit bauen

Echte native Apps, kompiliert aus TypeScript. Kein Electron, keine Web Views — einfach native UI auf jeder Plattform.

Mango

Mango

Native MongoDB-GUI — komplett in TypeScript gebaut

macOSLinuxWindows
Mango — document editor
Mango — query explorer
Hone

Hone

Nativer KI-Code-Editor — TypeScript zu nativer Binary

macOSiOSWeb
Hone — native AI code editor

Nativ auf jeder Plattform

Perry kompiliert dein TypeScript zu nativen UI-Frameworks, WebAssembly und JavaScript — keine Web-Views, kein Electron. Echte native Widgets auf jeder Plattform, plus das Web.

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

Vom Code zum App Store

Perry kompiliert nicht nur deine App — es bringt sie in die Hände deiner Nutzer.

perry compileKompilieren & signieren
perry publishPaketieren & einreichen
Stores & DownloadsApp Store, Play Store, direkt
perry verifyJede Plattform testen

Bauen & Signieren

Cross-Plattform-Builds mit einem Befehl. Code-Signierung für macOS, iOS, Android und Windows wird für dich erledigt. Kein Kampf mit Xcode-Provisioning-Profilen oder Android-Keystores.

Verteilen

Push zum App Store, Play Store oder versende Direktdownloads. Perry Publish übernimmt Paketierung, Notarisierung und Einreichung.

Verifizieren

Basierend auf Geisterhand. Automatisiertes UI-Testing auf allen 6 Plattformen. Wisse, dass deine App überall funktioniert, bevor deine Nutzer dir das Gegenteil sagen.

Kostenlos für Open-Source-Projekte. Pläne für Teams → /publish

Framework-Vergleich

Das einzige Framework, das alle Punkte erfüllt

TypeScript kompiliert zu nativem Code. Echte Plattform-Widgets. Kein Laufzeit-Overhead.

FrameworkSpracheNativer CodeNative WidgetsLaufzeit-Overhead
PerryTypeScript✓ Nativ kompiliert✓ Echte Plattform-Widgets✓ Kein Laufzeit-Overhead
React NativeJS / TSJS bridgeTeilweiseJS engine + bridge
FlutterDartAOTKein geteiltes UIDart VM
ElectronJS / TSChromium runtimeHTML mimicsChromium + Node

Schreibe TypeScript, liefere nativ aus

Verwende die vertraute TypeScript-Syntax und APIs. Perry erledigt den Rest.

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

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

Performance-Vergleich

Native Kompilierung liefert unerreichte Effizienz

Binary-Größe
1.8 MB
Bun 96 MB · Node 110 MB
Startzeit
<50 ms
Bun ~200 ms · Node ~800 ms
Laufzeitabhängigkeiten
Keine
Bun + Node need runtimes
Speicher-Overhead
Minimal
Bun ~80 MB · Node ~120 MB

Loslegen

Installiere Perry und beginne TypeScript zu nativen Binaries zu kompilieren

Homebrew (macOS)

brew install perry-ts/perry
Erfordert Homebrew. Unterstützt macOS arm64 und x86_64.

APT (Debian/Ubuntu)

apt-get install perry
Unterstützt x86_64- und arm64-Linux.

Windows (winget)

scoop install perry-ts/perry
Erfordert den Windows Package Manager. Unterstützt Windows x86_64 und arm64.

Feature-Unterstützung

Umfassende TypeScript- und Node.js-API-Abdeckung

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
Volle Unterstützung
Teilweise

30+ native npm-Pakete

Beliebte npm-Pakete nativ in Rust reimplementiert. Kein npm install, kein node_modules, einfach schneller nativer Code.

Datenbank

mysql2pgmongodbbetter-sqlite3ioredis

Sicherheit

bcryptargon2jsonwebtokencrypto

HTTP

httphttpsaxiosnode-fetchwsnodemailer

Datenverarbeitung

cheeriosharpzliblodash

Datum & Uhrzeit

dayjsmomentdate-fnsnode-cron

Hilfsprogramme

uuidnanoidslugifyvalidatordotenvrate-limiter-flexible
Einfach importieren und verwenden — Perry nutzt automatisch die native Implementierung

So funktioniert's

Von TypeScript-Quellcode zum nativen Binary in Sekunden

TypeScript.ts-Dateien
SWC
ParserSchnelles Parsen
HIR
TransformationMonomorphization
LLVM
CodegenMaschinencode
Ausführbare Datei2–5 MB Binary

Willst du wissen, wie der Compiler unter der Haube funktioniert? Compiler-Interna