Un seul code. Toutes les plateformes.
Performance native.
Perry compile TypeScript en applications GUI et CLI natives sur macOS, iPadOS, iOS, Android, Linux, Windows, watchOS, tvOS, WebAssembly et le Web. Pas de runtime. Pas d'Electron. Juste des binaires natifs.
$ perry compile main.ts
Compilation de main.ts...
✓ Exécutable compilé : main (2,3 Mo)
$ ./main
Hello, World!De vraies apps, compilées depuis TypeScript avec Perry.
Pourquoi Perry ?
Tout ce dont vous avez besoin pour compiler TypeScript en applications natives
Voyez ce que les gens construisent
De vraies apps natives, compilées depuis TypeScript. Pas d'Electron, pas de web views — juste une UI native sur chaque plateforme.
Mango
GUI MongoDB native — entièrement construite en TypeScript


Hone
Éditeur de code natif propulsé par l'IA — TypeScript vers binaire natif

Natif sur toutes les plateformes
Perry compile votre TypeScript en frameworks UI natifs, WebAssembly et JavaScript — pas de web views, pas d'Electron. De vrais widgets natifs sur chaque plateforme, plus le web.
Du code à l'App Store
Perry ne fait pas que compiler votre app — il la met entre les mains de vos utilisateurs.
Compiler et signer
Des builds multiplateforme en une seule commande. La signature de code pour macOS, iOS, Android et Windows est gérée pour vous. Plus besoin de se battre avec les profils de provisionnement Xcode ou les keystores Android.
Distribuer
Publiez sur l'App Store, le Play Store ou envoyez des téléchargements directs. Perry Publish gère l'empaquetage, la notarisation et la soumission.
Vérifier
Propulsé par Geisterhand. Tests UI automatisés sur les 6 plateformes. Sachez que votre app fonctionne partout avant que vos utilisateurs ne vous disent le contraire.
Gratuit pour les projets open source. Plans pour les équipes → /publish
Le seul framework qui coche toutes les cases
TypeScript compilé en code natif. De vrais widgets de plateforme. Zéro overhead runtime.
| Framework | Langage | Code natif | Widgets natifs | Overhead runtime |
|---|---|---|---|---|
| Perry | TypeScript | ✓ Compilé natif | ✓ Vrais widgets de plateforme | ✓ Zéro overhead runtime |
| React Native | JS / TS | JS bridge | Partiel | JS engine + bridge |
| Flutter | Dart | AOT | Pas d'UI partagée | Dart VM |
| Electron | JS / TS | Chromium runtime | HTML mimics | Chromium + Node |
Écrivez du TypeScript, livrez en natif
Utilisez la syntaxe et les APIs TypeScript familières. Perry s'occupe du reste.
// hello.ts
const greeting = "Hello, World!";
console.log(greeting);
// Compiles to ~2MB native executable
// No runtime needed!Comparaison des performances
La compilation native offre une efficacité inégalée
Commencer
Installez Perry et commencez à compiler TypeScript en exécutables natifs
Homebrew (macOS)
brew install perry-ts/perryAPT (Debian/Ubuntu)
apt-get install perryWindows (winget)
scoop install perry-ts/perrySupport des fonctionnalités
Couverture complète des APIs TypeScript et 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
Plus de 30 paquets npm natifs
Des paquets npm populaires réimplémentés en Rust natif. Pas de npm install, pas de node_modules, juste du code natif rapide.
Base de données
Sécurité
HTTP
Traitement de données
Date et heure
Utilitaires
Comment ça fonctionne
Du code source TypeScript à l'exécutable natif en quelques secondes
Vous voulez savoir comment le compilateur fonctionne en coulisses ? Fonctionnement interne du compilateur
Blog
16 blog
Auto-Update, a Live Inspector, and the Compiler That Halved Itself
Le précédent billet s'est arrêté à v0.5.306 sur l'histoire gen-GC + JSON + benchmarks. Quatre jours plus tard, Perry est en v0.5.359 — soit 53 patch releases — et l'histoire est en…
tvOS, Cross-Compile iOS from Linux, and Perry Login
Cinq jours, 120 commits, et Perry passe de v0.4.0 à v0.4.24. Les points forts : tvOS devient la 10e cible de compilation, les apps iOS et macOS peuvent désormais être construites e…
True Multi-Threading, Compile-Time i18n, and watchOS
Perry v0.4.0 est la plus grande version depuis le début du projet. Trois sauts de version en un seul cycle — v0.3.0 (i18n), v0.3.2 (watchOS), v0.4.0 (multi-threading) — et le compi…
The Full Pipeline: Docs, Distribution, and WidgetKit
82 commits en sept jours. Un site de documentation de 49 pages. Publication automatisée sur l'App Store et le Play Store. Paquets Homebrew et APT. Extensions natives WidgetKit comp…
Plugin Systems Are a Performance Tax
Vous installez VS Code. C'est rapide. Vous ajoutez 15 extensions. Maintenant, il met 4 secondes à démarrer et l'Extension Host consomme 800 Mo de RAM. Que s'est-il passé ?…