Một mã nguồn. Mọi nền tảng.
Hiệu năng gốc.
Perry biên dịch TypeScript thành ứng dụng GUI và CLI gốc trên macOS, iPadOS, iOS, Android, Linux, Windows, watchOS, tvOS, WebAssembly và Web. Không cần runtime. Không cần Electron. Chỉ là binary gốc.
$ perry compile main.ts
Đang biên dịch main.ts...
✓ Tệp thực thi đã biên dịch: main (2,3 MB)
$ ./main
Hello, World!Ứng dụng thực, biên dịch từ TypeScript với Perry.
Tại sao chọn Perry?
Mọi thứ bạn cần để biên dịch TypeScript thành ứng dụng gốc
Xem mọi người xây dựng gì
Ứng dụng native thực sự, biên dịch từ TypeScript. Không Electron, không web view — chỉ UI native trên mọi nền tảng.
Mango
GUI MongoDB native — xây dựng hoàn toàn bằng TypeScript


Hone
Trình soạn thảo code native hỗ trợ AI — TypeScript sang binary native

Gốc trên mọi nền tảng
Perry biên dịch TypeScript của bạn thành framework UI gốc, WebAssembly và JavaScript — không phải web view, không phải Electron. Widget gốc thực sự trên mọi nền tảng, cộng thêm web.
Từ mã nguồn đến App Store
Perry không chỉ biên dịch ứng dụng — mà còn đưa nó đến tay người dùng.
Build và Ký
Build đa nền tảng chỉ với một lệnh. Ký mã cho macOS, iOS, Android và Windows được xử lý cho bạn. Không cần vật lộn với provisioning profile của Xcode hay keystore của Android.
Phân phối
Đẩy lên App Store, Play Store hoặc cung cấp tải trực tiếp. Perry Publish xử lý đóng gói, công chứng và gửi.
Xác minh
Được hỗ trợ bởi Geisterhand. Kiểm thử UI tự động trên cả 6 nền tảng. Biết rằng ứng dụng của bạn hoạt động ở mọi nơi trước khi người dùng nói cho bạn biết nó không.
Miễn phí cho dự án mã nguồn mở. Gói cho nhóm → /publish
Framework duy nhất đáp ứng mọi tiêu chí
TypeScript biên dịch sang mã gốc. Widget nền tảng thực sự. Không có chi phí runtime.
| Framework | Ngôn ngữ | Mã gốc | Widget gốc | Chi phí runtime |
|---|---|---|---|---|
| Perry | TypeScript | ✓ Biên dịch gốc | ✓ Widget nền tảng thực sự | ✓ Không có chi phí runtime |
| React Native | JS / TS | JS bridge | Một phần | JS engine + bridge |
| Flutter | Dart | AOT | Không có UI dùng chung | Dart VM |
| Electron | JS / TS | Chromium runtime | HTML mimics | Chromium + Node |
Viết TypeScript, xuất bản gốc
Sử dụng cú pháp và API TypeScript quen thuộc. Perry lo phần còn lại.
// hello.ts
const greeting = "Hello, World!";
console.log(greeting);
// Compiles to ~2MB native executable
// No runtime needed!So sánh hiệu năng
Biên dịch gốc mang lại hiệu quả vượt trội
Bắt đầu
Cài đặt Perry và bắt đầu biên dịch TypeScript thành tệp thực thi gốc
Homebrew (macOS)
brew install perry-ts/perryAPT (Debian/Ubuntu)
apt-get install perryWindows (winget)
scoop install perry-ts/perryHỗ trợ tính năng
Bao phủ toàn diện API TypeScript và 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
Hơn 30 gói npm gốc
Các gói npm phổ biến được triển khai lại bằng Rust gốc. Không npm install, không node_modules, chỉ có mã gốc nhanh.
Cơ sở dữ liệu
Bảo mật
HTTP
Xử lý dữ liệu
Ngày và giờ
Tiện ích
Cách hoạt động
Từ mã nguồn TypeScript đến tệp thực thi gốc chỉ trong vài giây
Muốn biết trình biên dịch hoạt động bên trong như thế nào? Cấu trúc bên trong trình biên dịch
Blog
16 blog
Auto-Update, a Live Inspector, and the Compiler That Halved Itself
Bài trước khép lại ở v0.5.306 với câu chuyện gen-GC + JSON + benchmark. Bốn ngày sau, Perry đã ở v0.5.359 — tức 53 patch release — và câu chuyện lại khác. Không có release nào tron…
tvOS, Cross-Compile iOS from Linux, and Perry Login
Năm ngày, 120 commit, và Perry nhảy từ v0.4.0 lên v0.4.24. Các điểm nổi bật: tvOS trở thành mục tiêu biên dịch thứ 10, ứng dụng iOS và macOS giờ có thể được build hoàn toàn từ Linu…
True Multi-Threading, Compile-Time i18n, and watchOS
Perry v0.4.0 là bản phát hành lớn nhất kể từ khi dự án bắt đầu. Ba bước nhảy phiên bản trong một chu kỳ — v0.3.0 (i18n), v0.3.2 (watchOS), v0.4.0 (đa luồng) — và bản thân trình biê…
The Full Pipeline: Docs, Distribution, and WidgetKit
82 commit trong bảy ngày. Trang tài liệu với 49 trang. Xuất bản App Store và Play Store tự động. Gói Homebrew và APT. Extension WidgetKit native biên dịch từ TypeScript. Trình biên…
Plugin Systems Are a Performance Tax
Bạn cài VS Code. Nó nhanh. Bạn thêm 15 extension. Bây giờ nó mất 4 giây để khởi động và Extension Host ngốn 800 MB RAM. Chuyện gì đã xảy ra?…