# Perry > Perry compiles TypeScript to native GUI and CLI apps on macOS, iPadOS, iOS, Android, Linux, Windows, watchOS, tvOS, WebAssembly, and the Web. No runtime. No Electron. Just native binaries. ## Blog - [CLI Test Post](http://127.0.0.1:4200/blog/cli-test-1779294032): Testing the CLI created via skelpo-cms content create with metaDescription long enough to pass the publish gate - [What aya_koto's Benchmark Taught Us About Perry's GC](http://127.0.0.1:4200/blog/closing-the-gc-gap): A reader benchmarked Perry on AtCoder ABC451D and measured it 3.85× slower than Bun. A silent regression had widened the gap to 6.59× since. The fix wasn't where we expected, the deliberate GC trade-o - [Auto-Update, a Live Inspector, and the Compiler That Halved Itself](http://127.0.0.1:4200/blog/updater-live-inspector-and-compiler-refactor): Perry v0.5.306 → v0.5.359 in four days — 53 patch releases, ~30 issues closed, and three big things landed: perry/updater for desktop auto-update, a live inspector at localhost:7676, and a compiler re - [Generational GC, Lazy JSON, and Benchmarks That Hold Up to Scrutiny](http://127.0.0.1:4200/blog/gen-gc-lazy-json-and-defensible-benchmarks): Perry v0.5.174 → v0.5.306 in three days, plus the GC and JSON work that landed alongside. The generational GC ships as default. The Small String Optimization ships as default. The JSON pipeline gets a - [npm Distribution, perry dev, and Winning Every Benchmark](http://127.0.0.1:4200/blog/npm-perry-dev-and-beating-bun): Perry v0.5.80 → v0.5.174 in six days. @perryts/perry ships on npm for all seven supported platforms. perry dev adds watch-mode auto-recompile on top of an in-memory AST cache and on-disk per-module ob - [Optimizing Everything: One Week, 68 Releases, and a 547x JSON Speedup](http://127.0.0.1:4200/blog/optimizing-everything): Perry v0.5.13 → v0.5.80 in seven days. JSON.parse closes a 547x gap to Node. mimalloc lands as the global allocator. Inline caches, shape transitions, typed buffer slots, i32-native bitwise ops, scala - [From Cranelift to LLVM: How Perry Got 24x Faster](http://127.0.0.1:4200/blog/cranelift-to-llvm): Perry's backend migration from Cranelift to LLVM is finished. The initial cutover made benchmarks 70x slower — then six targeted optimizations made Perry faster than Node.js on every benchmark, with u - [tvOS, Cross-Compile iOS from Linux, and Perry Login](http://127.0.0.1:4200/blog/tvos-cross-compile-and-perry-login): Perry v0.4.24: tvOS as the 10th compilation target, cross-compile iOS and macOS from Linux via ld64.lld, perry login with usage-based billing, Windows UI overhaul, macOS notarization, and 120 commits - [True Multi-Threading, Compile-Time i18n, and watchOS](http://127.0.0.1:4200/blog/true-multithreading-i18n-and-watchos): Perry v0.4.0: real OS threads with compile-time safety, a zero-ceremony internationalization system for 30+ locales, watchOS as the 9th compilation target, audio and camera APIs, and a parallel compil - [Cross-Compile to Windows, iOS Game Loops, and 100% Test Parity](http://127.0.0.1:4200/blog/cross-compile-windows-game-loops-and-parity): 103 commits in one week: cross-compile to Windows from Linux via lld-link, iOS game loop support, crash reporting, a two-stage Hub build pipeline, and the self-hosting compiler hits 68/68 deterministi - [The Full Pipeline: Docs, Distribution, and WidgetKit](http://127.0.0.1:4200/blog/the-full-pipeline): 82 commits in one week: a 49-page documentation site, automated App Store and Play Store publishing, Homebrew and APT packages, native WidgetKit extensions from TypeScript, new widgets, http/https mod - [From Compiler to Ecosystem: React, Databases, and Cloud Builds](http://127.0.0.1:4200/blog/from-compiler-to-ecosystem): Perry grows from a compiler into a full ecosystem. perry/ui at the core, Prisma-compatible ORMs for MySQL/PostgreSQL/SQLite, universal push notifications, distributed builds with App Store publishing, - [All Six Platforms, Full Feature Parity](http://127.0.0.1:4200/blog/all-six-platforms-ui-parity): 20+ native UI widgets, a Canvas widget, Table views, system notifications, keychain access, multi-window support, and full feature parity across macOS, iOS, iPadOS, Android, Linux, and Windows — all f - [Compiling Hono, tRPC, and Strapi to Native Binaries](http://127.0.0.1:4200/blog/compiling-hono-trpc-strapi): Perry now compiles three major TypeScript frameworks — Hono, tRPC, and Strapi — into native ARM64 executables. They compile in under a second, produce binaries under 2 MB, and run without crashes. - [Plugin Systems Are a Performance Tax](http://127.0.0.1:4200/blog/plugin-systems-are-a-performance-tax): Plugin architectures trade performance for extensibility. But what if extensibility happened at build time instead of runtime? Compile-time composition gives you both — zero overhead, full flexibility - [Building Pry: A Native JSON Viewer in TypeScript](http://127.0.0.1:4200/blog/building-pry): A walkthrough of building Pry — a native JSON viewer that compiles from TypeScript to a native ARM64 binary. No runtime, no web views. - [Cross-Platform Native UI from TypeScript](http://127.0.0.1:4200/blog/cross-platform-native-ui): How Perry maps one TypeScript codebase to AppKit, UIKit, Android Views, GTK4, and Win32 — delivering truly native UI on every platform. - [Introducing Perry](http://127.0.0.1:4200/blog/introducing-perry): Perry is a native TypeScript compiler written in Rust that compiles your TypeScript directly to standalone executables. No runtime, no Electron, no compromises.