Blog
18 posts
CLI Test Post
Testing the CLI
What aya_koto's Benchmark Taught Us About Perry's GC
· GC · performance · benchmarksA 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-off it exposed was real, and Perry v0.5.875 now ties Bun on the same bench: 425 m
Auto-Update, a Live Inspector, and the Compiler That Halved Itself
· updater · devtools · refactorPerry 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 refactor that shrank the four biggest files by 33–91%.
Generational GC, Lazy JSON, and Benchmarks That Hold Up to Scrutiny
· GC · JSON · performancePerry 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 lazy tape that lands at 75 ms median on validate-and-roundtrip — best in the dy
npm Distribution, perry dev, and Winning Every Benchmark
· npm · developer-experience · performancePerry 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 object cache. json_roundtrip closes its last gap — Perry now wins every benchmark
Optimizing Everything: One Week, 68 Releases, and a 547x JSON Speedup
· performance · llvm · JSONPerry 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, scalar replacement, and a native event loop that keeps Fastify and WebSocket servers
From Cranelift to LLVM: How Perry Got 24x Faster
· compilers · llvm · craneliftPerry'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 up to 24.6x speedups.
tvOS, Cross-Compile iOS from Linux, and Perry Login
· tvOS · cross-compilation · billingPerry 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 in 5 days.
True Multi-Threading, Compile-Time i18n, and watchOS
· threading · i18n · watchOSPerry 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 compiler pipeline.
Cross-Compile to Windows, iOS Game Loops, and 100% Test Parity
· compiler · cross-compilation · infrastructure103 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 deterministic test parity.
The Full Pipeline: Docs, Distribution, and WidgetKit
· distribution · documentation · WidgetKit82 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 modules, and a self-hosting LLVM compiler.
From Compiler to Ecosystem: React, Databases, and Cloud Builds
· ecosystem · perry/ui · databasesPerry 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, and a React compatibility layer — all in one week.
All Six Platforms, Full Feature Parity
· UI · cross-platform · release20+ 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 from a single TypeScript codebase.
Compiling Hono, tRPC, and Strapi to Native Binaries
· compiler · frameworks · progressPerry 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
· architecture · performance · compilerPlugin 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
· tutorial · showcase · PryA 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
· architecture · UI · cross-platformHow Perry maps one TypeScript codebase to AppKit, UIKit, Android Views, GTK4, and Win32 — delivering truly native UI on every platform.
Introducing Perry
· announcement · compiler · TypeScriptPerry is a native TypeScript compiler written in Rust that compiles your TypeScript directly to standalone executables. No runtime, no Electron, no compromises.