Yol Haritası

Perry bugün nerede ve nereye gidiyor. Yerel derlemeden tam kapsamlı çapraz platform geliştirme ekosistemine.

Yayınlandı

Native TS → executable compilation

SWC parsing + Cranelift code generation for AOT compilation of TypeScript to native machine code.

10-target compilation: 8 native platforms + WASM + Web

AppKit, UIKit, Android Views (JNI), GTK4, Win32, SwiftUI (watchOS/tvOS), WebAssembly, and JavaScript — 25+ widgets, Canvas, Table, system APIs across all targets.

React compatibility layer (perry-react)

Optional bridge: write React/JSX and it compiles to perry/ui widgets underneath. Phase 1 shipped.

Prisma-compatible ORMs (MySQL, PostgreSQL, SQLite)

Drop-in @prisma/client replacements backed by Rust FFI + sqlx. Full CRUD, transactions, raw SQL — zero runtime overhead.

Universal push notifications (perry-push)

APNs, FCM, Web Push, and WNS from a single library with Rust FFI. ES256/RS256 JWT, OAuth 2.0, VAPID.

Perry Hub + distributed build workers

Cloud build orchestration server with macOS and Linux workers. Code signing, notarization, App Store and Play Store publishing.

Pry: native JSON viewer on 5 platforms

Flagship app shipping on Mac App Store and Google Play. Same TypeScript codebase, five native binaries.

30+ native npm package implementations

mysql2, pg, mongodb, axios, bcrypt, express, ws, jsonwebtoken, uuid, chalk, and more — compiled natively.

Async/await, Promises, generators, closures, generics

Full support for modern TypeScript features including generics with monomorphization.

Classes with inheritance, private fields, static members

Complete class support including extends, private fields (#field), and static methods/properties.

Optional V8 runtime for JS npm compatibility

Embed V8 to run uncompiled JavaScript npm packages when native implementations aren't available.

Cross-compilation (macOS → Linux, macOS → iOS, Linux → Windows)

Build for other platforms from your development machine without needing the target OS. Linux → Windows via lld-link and xwin-style sysroot.

Documentation site (docs.perryts.com)

49-page mdBook documentation covering language features, native UI, stdlib, CLI reference, all 6 platforms, and plugins.

Homebrew + APT distribution

Install Perry via brew install PerryTS/perry/perry on macOS or apt-get on Debian/Ubuntu. Automated release pipeline via GitHub Actions.

Automated App Store & Play Store publishing

perry publish ios / macos / android: automated certificate generation, code signing, provisioning profiles, and store submission with no manual portal visits.

perry/widget — Native WidgetKit from TypeScript

Compile TypeScript widget definitions to native SwiftUI WidgetKit extensions. HIR-level render tree emitted as SwiftUI source code.

iPad native support

Full iPad support with UIDeviceFamily [1,2], orientation, LaunchScreen storyboard, and device idiom detection.

http/https native modules

Client-side HTTP via reqwest: request(), get(), ClientRequest, IncomingMessage — matching the Node.js http API.

better-sqlite3 support

Full better-sqlite3 API: new Database(), prepare, exec, run, get, all — with NaN-boxing and named column access.

WASM compilation target

Compile TypeScript to WebAssembly bytecode. Self-contained HTML output, full perry/ui support via DOM bridge, NaN-boxing, async/await, class system.

Web/JavaScript compilation target

Compile TypeScript to optimized JavaScript with Rust-native minification and name obfuscation. Pure JS output for browser deployment.

Geisterhand: cross-platform UI testing

In-process testing framework with embedded HTTP server. Programmatic widget interaction, screenshot capture, and chaos/fuzz testing on all 5 native platforms.

perry run — one-step compile and launch

Auto-detects entry file, target platform, and connected devices. Interactive prompts for multiple targets, live console streaming, remote build fallback.

Enhanced type inference

Infers types from literals, binary ops, variable propagation, and method returns. Optional tsgo IPC integration for full type checking.

Compile native npm packages

perry.compilePackages config: compile pure TS/JS npm packages natively instead of V8. Deduplication across nested node_modules.

Design system bridge (perry-styling)

Token codegen CLI, typed PerryTheme objects, flat-primitive styling helpers, compile-time platform constants via __platform__.

Telemetry & auto-update

Opt-in anonymous usage statistics, background version check on every CLI invocation with 24h cache, perry update command.

CLI: platform as positional argument

perry run ios, perry publish macos — platform is now a positional argument instead of boolean flags, making commands more intuitive.

Runtime performance optimizations

memcmp-based string comparison, interned typeof results, inline .length access, direct field access on known types, and reduced NaN-boxing for strings, closures, and private fields.

Cross-compile to Windows from Linux

Build Windows executables from Linux using lld-link and PERRY_WINDOWS_SYSROOT. Runtime target detection replaces compile-time #[cfg] checks for true cross-compilation.

iOS game loop support

UIApplicationMain on main thread, user code on background thread via --features ios-game-loop. Enables blocking game loop patterns (while !shouldClose) on iOS where UIKit must own the main thread.

Crash reporting (crash.log)

Panic hooks and signal handlers (SIGSEGV/SIGBUS/SIGABRT) write crash details to ~/.hone/crash.log for Chirp telemetry. Caught panics clear the log.

Two-stage Hub build pipeline

Linux workers cross-compile Windows artifacts, Hub re-queues for Windows workers to sign and package. Azure VM auto-startup for Windows sign workers.

Cross-platform menu APIs

menuClear and menuAddStandardAction extended from macOS-only to all 6 native platforms.

Comprehensive perry.toml and Geisterhand documentation

Complete perry.toml reference with bundle ID resolution, build number auto-increment, and CI/CD examples. Full Geisterhand rewrite with API docs and test automation patterns.

True multi-threading (v0.4.0)

Real OS threads via perry/thread: parallelMap, parallelFilter, and spawn. Compile-time mutable capture rejection for thread safety. Thread-local arenas, SerializedValue deep-copy, parallel compiler pipeline.

Compile-time i18n system (v0.3.0)

Zero-ceremony internationalization: auto-extract string literals, CLDR plural rules for 30+ locales, compile-time validation, translations baked into binary. perry i18n extract CLI, format wrappers, native locale detection.

watchOS native app support (v0.3.2)

Full watchOS compilation target with data-driven SwiftUI renderer, 15 supported widgets, perry run watchos with simulator auto-detection, and perry setup watchos wizard.

perry/widget — 4-platform widget support

Expanded from iOS-only to iOS, Android (Glance), watchOS, and Wear OS (Tiles). Four new compile targets for widget extensions.

Audio & camera capture APIs

perry/system audio capture (AVAudioEngine, AudioRecord, PulseAudio, WASAPI, Web Audio) and perry/ui camera capture (AVCaptureSession) with A-weighted dB measurement and color sampling.

perry run android — full APK pipeline

One-step compile, package, assembleDebug, install, and launch for Android apps with Gradle integration.

Push notifications & StoreKit packages

perry/push (APNs permission, token retrieval, badge count) and perry/storekit (StoreKit 2 purchases, subscriptions, receipt validation) as first-party native packages.

Cranelift 0.121 + parallel compilation

Upgraded from Cranelift 0.113 to 0.121. Module codegen, transform passes, and symbol scanning parallelized via rayon across all CPU cores.

tvOS (Apple TV) target (v0.4.5)

10th compilation target. Full tvOS support with SwiftUI renderer, same codebase as iOS/watchOS apps.

Cross-compile iOS/macOS from Linux (v0.4.23–v0.4.24)

Build iOS and macOS binaries from Linux using ld64.lld. Framework linking, -lobjc, CoreGraphics/Metal/IOKit, and Mach-O codegen triple.

perry login + usage-based billing (v0.4.14)

GitHub OAuth login flow, API tokens, free tier (15 builds/month), Pro tier via Polar.sh. Dashboard at app.perryts.com with usage tracking.

Hub parallel builds

Slot-based dispatch with concurrent workers. Workers report max_concurrent capacity, artifacts served as base64 downloads.

Windows UI overhaul (v0.4.8–v0.4.13)

DPI-aware scaling, GDI gradient fills, PNG/JPEG image loading, launcher-style window APIs, global hotkeys, app icons, reentrancy-safe layout.

macOS notarization + GCloud KMS signing

--notarize flag for perry publish macos with Developer ID certificate. GCloud KMS code signing for Windows builds.

perry/appstorereview package

Native app store review prompts: SKStoreReviewController (iOS) and Play In-App Review API (Android).

Performance: native fcmp, string append, short-circuit (v0.4.14)

Native floating-point comparison (mandelbrot 30% faster), in-place string append (125x faster), short-circuit AND/OR, negative literal folding at HIR level.

iOS App Store readiness (v0.4.24)

Full Info.plist with all Apple-required keys, CFBundleIcons, version/build from perry.toml, UILaunchScreen, provisioning profiles for TestFlight.

Devam Ediyor

perry/ui expansion

Drag and drop, accessibility labels, custom context menus, DatePicker, and more layout primitives across all platforms.

Full regex support

Complete ECMAScript-compatible regular expression engine compiled to native code.

Further performance optimization

Continuing to improve object creation, memory management, and code generation for even faster binaries. v0.4.14 shipped native fcmp (30% faster mandelbrot), 125x string append, short-circuit AND/OR, and negative literal folding.

Framework compatibility layers

Improving React, Angular, and Ionic bridges as on-ramps — all mapping to perry/ui underneath.

perrysdad: self-hosting LLVM compiler

Alternative LLVM IR backend for Perry written in TypeScript, compiled by Perry itself. 68/68 deterministic tests passing (100% parity). Phase 6: async/await, generators, interface dispatch.

Planlandı

Hub public beta

Opening distributed builds to external users — push TypeScript, get signed native binaries for all platforms.

Stream module

Node.js-compatible Readable, Writable, Transform, and Duplex stream implementations.

Source maps & debug info

DWARF debug info and source maps for native debugging with lldb/gdb and IDE integration.

VS Code extension

Language server, build integration, and debugging support directly in VS Code.

Perry package registry

A registry for Perry-optimized packages with pre-compiled native implementations.

Vizyon

One TypeScript codebase → every platform and the web

Write once, compile to native GUI and CLI apps on macOS, iPadOS, iOS, Android, Linux, Windows, WebAssembly, and the Web.

Full perry/ui framework with layout engine

Advanced layout system, animations, gestures, and accessibility — the most complete native UI toolkit for TypeScript.

Hot reload for native UI development

Instant preview of UI changes during development without recompiling the entire binary.