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.

macOS native UI (AppKit)

Full AppKit integration — NSWindow, NSView, NSButton, NSTextField, menus, and more.

iOS & iPadOS native UI (UIKit)

UIKit integration for iPhone and iPad — UIViewController, UIView, UIButton, UITableView.

Android native UI (JNI + Views)

Android support via JNI — Activity, View, Button, TextView, RecyclerView, and Android lifecycle.

Linux native UI (GTK4)

GTK4 integration — GtkWindow, GtkBox, GtkButton, GtkEntry, GtkListBox, and CSS theming.

Windows native UI (Win32)

Win32 API integration — CreateWindowEx, message loop, common controls, and GDI rendering.

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.

62/62 tests passing

Comprehensive test suite covering compilation, runtime behavior, and platform-specific features.

In Progress

UI widget library expansion

Adding State<string>, SecureField, ProgressView, Alert, DatePicker, and more across all platforms.

Performance optimization

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

Full regex support

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

Stream module

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

Planned

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.

Package manager integration

First-class integration with npm/yarn/pnpm for dependency resolution and native compilation.

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 GUI framework parity across all platforms

Every widget, layout, gesture, and animation available on every supported platform.

Hot reload for native UI development

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

Perry Cloud

CI/CD service for multi-platform builds — push TypeScript, get native binaries for all platforms.