Roadmap

Where Perry is today and where it's headed. From native compilation to a full cross-platform development ecosystem.

Shipped

Native TS → executable compilation

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

6-platform native UI with full feature parity

AppKit, UIKit, Android Views (JNI), GTK4, Win32 — 20+ widgets, Canvas, Table, system APIs on all platforms.

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.

27+ 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)

Build for other platforms from your development machine without needing the target OS.

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.

In Progress

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.

Performance optimization

Improving string operations, object creation, and memory management for even faster binaries.

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. Classes, enums, closures, and multi-file compilation working.

Planned

Hub public beta

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

WASM compilation target

Compile TypeScript to WebAssembly for browser and edge runtime deployment.

Multi-threading support

Native thread spawning and shared memory for CPU-intensive workloads.

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.

Vision

One TypeScript codebase → native apps on all 6 platforms

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

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.