하나의 코드베이스. 모든 플랫폼.
네이티브 성능.
Perry는 TypeScript를 macOS, iPadOS, iOS, Android, Linux, Windows, watchOS, tvOS, WebAssembly, 그리고 웹에서 네이티브 GUI 및 CLI 앱으로 컴파일합니다. 런타임 없음. Electron 없음. 네이티브 바이너리만.
$ perry compile main.ts
main.ts 컴파일 중...
✓ 컴파일된 실행 파일: main (2.3 MB)
$ ./main
Hello, World!왜 Perry인가?
TypeScript를 네이티브 애플리케이션으로 컴파일하는 데 필요한 모든 것
사람들이 만드는 것
TypeScript로 컴파일된 진짜 네이티브 앱. Electron 없이, 웹뷰 없이 — 모든 플랫폼에서 네이티브 UI.
Mango
네이티브 MongoDB GUI — TypeScript로 완전히 구축


Hone
네이티브 AI 코드 에디터 — TypeScript에서 네이티브 바이너리로

모든 플랫폼에서 네이티브
Perry는 TypeScript를 네이티브 UI 프레임워크, WebAssembly, JavaScript로 컴파일합니다 — 웹 뷰가 아닌, Electron이 아닌. 모든 플랫폼에서 진짜 네이티브 위젯을, 그리고 웹까지.
코드에서 App Store까지
Perry는 앱을 컴파일할 뿐만 아니라 사용자의 손에 전달합니다.
빌드 및 서명
하나의 명령으로 크로스 플랫폼 빌드. macOS, iOS, Android, Windows의 코드 서명을 자동으로 처리합니다. Xcode 프로비저닝 프로파일이나 Android 키스토어와 씨름할 필요가 없습니다.
배포
App Store, Play Store에 푸시하거나 직접 다운로드로 배포. Perry Publish가 패키징, 공증, 제출을 처리합니다.
검증
Geisterhand 기반. 6개 모든 플랫폼에서 자동화된 UI 테스트. 사용자가 알려주기 전에 앱이 모든 곳에서 작동하는지 확인하세요.
오픈소스 프로젝트는 무료. 팀 요금제 → /publish
모든 조건을 충족하는 유일한 프레임워크
TypeScript를 네이티브 코드로 컴파일. 진짜 플랫폼 위젯. 제로 런타임 오버헤드.
| 프레임워크 | 언어 | 네이티브 코드 | 네이티브 위젯 | 런타임 오버헤드 |
|---|---|---|---|---|
| Perry | TypeScript | ✓ 네이티브 컴파일 | ✓ 진짜 플랫폼 위젯 | ✓ 제로 런타임 오버헤드 |
| React Native | JS / TS | JS bridge | 부분적 | JS engine + bridge |
| Flutter | Dart | AOT | 공유 UI 없음 | Dart VM |
| Electron | JS / TS | Chromium runtime | HTML mimics | Chromium + Node |
TypeScript를 작성하고, 네이티브로 배포
익숙한 TypeScript 문법과 API를 사용하세요. Perry가 나머지를 처리합니다.
// hello.ts
const greeting = "Hello, World!";
console.log(greeting);
// Compiles to ~2MB native executable
// No runtime needed!성능 비교
네이티브 컴파일이 비교할 수 없는 효율성을 제공합니다
시작하기
Perry를 설치하고 TypeScript를 네이티브 실행 파일로 컴파일하세요
Homebrew (macOS)
brew install perry-ts/perryAPT (Debian/Ubuntu)
apt-get install perryWindows (winget)
scoop install perry-ts/perry기능 지원
포괄적인 TypeScript 및 Node.js API 커버리지
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
30개 이상의 네이티브 npm 패키지
인기 npm 패키지를 네이티브 Rust로 재구현. npm install 불필요, node_modules 불필요, 빠른 네이티브 코드만.
데이터베이스
보안
HTTP
데이터 처리
날짜 및 시간
유틸리티
작동 원리
TypeScript 소스에서 네이티브 실행 파일까지 몇 초 만에
컴파일러 내부 작동 방식이 궁금하신가요? 컴파일러 내부 구조
블로그
16 블로그
Auto-Update, a Live Inspector, and the Compiler That Halved Itself
지난 글은 v0.5.306에서 gen-GC + JSON + 벤치마크 이야기로 마무리됐습니다. 4일이 지난 지금 Perry는 v0.5.359에 와 있고 — 그 사이 53번의 패치 릴리스 — 이야기는 또 달라집니다. 그 릴리스들 중 어느 하나도 벤치마크 숫자를 헤드라인으로 내건 것은 없습니다. 거의 전부가 트래커의 이슈가 닫…
tvOS, Cross-Compile iOS from Linux, and Perry Login
5일, 120개 커밋, Perry가 v0.4.0에서 v0.4.24로 도약했습니다. 하이라이트: tvOS가 10번째 컴파일 대상이 되고, iOS와 macOS 앱을 이제 Linux에서 완전히 빌드할 수 있으며, perry login으로 사용량 기반 과금이 도입되고, Windows UI가 전면 개편되었습니다. 출시된 모든 내용…
True Multi-Threading, Compile-Time i18n, and watchOS
Perry v0.4.0은 프로젝트 시작 이래 가장 큰 릴리스입니다. 한 사이클에서 세 번의 버전 점프 — v0.3.0 (i18n), v0.3.2 (watchOS), v0.4.0 (멀티스레딩) — 그리고 컴파일러 자체도 이제 병렬입니다. 출시된 모든 내용을 소개합니다.…
The Full Pipeline: Docs, Distribution, and WidgetKit
7일 동안 82개의 커밋. 49페이지의 문서 사이트. 자동화된 App Store와 Play Store 게시. Homebrew와 APT 패키지. TypeScript에서 컴파일된 네이티브 WidgetKit 확장. 셀프 호스팅 LLVM 컴파일러. 그리고 모든 플랫폼에 걸친 수십 개의 버그 수정.…
Plugin Systems Are a Performance Tax
VS Code를 설치합니다. 빠릅니다. 확장 15개를 추가합니다. 이제 시작에 4초가 걸리고 Extension Host가 800 MB RAM을 소모합니다. 무슨 일이 일어난 걸까요?…