perryts/perry

A native TypeScript/JavaScript compiler written in Rust. Compiles TypeScript/JavaScript directly to executables using SWC and LLVM.

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 14 minutes ago
Added to GitGenius on September 14th, 2026
Created on January 19th, 2026
Open Issues & Pull Requests: 284 (+0)
GitHub issues: Enabled
Number of forks: 161
Total Stargazers: 4,856 (+0)
Total Subscribers: 17 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 8.1 hours
Mean response time: 37.2 hours
90th percentile: 3.2 days
Tracked items: 3,956

Most active contributors

Sign in to see contributor activity.

How this project is maintained

About 5% of issues opened in the past year have never received a reply. 100% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Work labelled "rust" is answered fastest, typically in about 2 hours, while "rfc" waits about 4 days. Almost all tracked open issues have seen activity in the last three months. 94% of issues opened in the past year have since been closed.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 263
New in 7 days: 353
Closed in 7 days: 153
Avg open age: 4 days
Stale 30+ days: 9
Stale 90+ days: 0

Recent activity

Opened in 7 days: 325
Closed in 7 days: 143
Comments in 7 days: 151
Events in 7 days: 516

Top labels

  • bug (631)
  • parity (389)
  • enhancement (195)
  • performance (180)
  • package-audit (169)
  • inprogress (70)
  • tooling (52)
  • triaged (34)

Detailed Description

Perry is a native TypeScript/JavaScript compiler written in Rust that compiles TypeScript and JavaScript directly to machine-code executables for multiple platforms including macOS, Windows, Linux, iOS, Android, watchOS, and TV.

The problem Perry solves is the overhead inherent in shipping TypeScript and JavaScript applications. Traditionally, deploying TypeScript means bundling a JavaScript engine—whether Node.js on servers, an embedded runtime in CLIs, or a browser engine in desktop applications. Perry eliminates this by using SWC to parse code and LLVM to compile it to native machine code, producing self-contained binaries with instant cold starts, minimal file sizes, and genuine multithreading without a runtime layer. The same codebase can also target the web as JavaScript or WebAssembly.

Developers should consider Perry if they want to ship TypeScript as native applications without runtime overhead. It suits projects targeting mobile platforms, desktop applications, command-line tools, or any scenario where binary size, startup time, or native UI integration matters. The tool is particularly valuable for teams already writing TypeScript who want to reach iOS, Android, and watchOS from a single codebase—capabilities that Node.js, Bun, and Electron do not offer. Perry's ahead-of-time compilation model delivers performance characteristics that can match or exceed native Rust on compute-intensive workloads while using substantially less memory than JavaScript runtimes.

The project maintains active development with regular updates to its compiler infrastructure and platform support. Documentation is comprehensive with examples and a showcase of applications built with the tool. The maintainers continue expanding native UI capabilities across platforms and refining the compilation pipeline to improve both binary size and runtime performance.