Skip to content
Tech News
← Back to articles

Perry Compiles TypeScript directly to executables using SWC and LLVM

read original get TypeScript to Executable Compiler → more articles
Why This Matters

Perry's new approach allows developers to compile TypeScript directly into native executables using SWC and LLVM, eliminating runtime dependencies and enabling faster, smaller, and more reproducible builds. This innovation bridges the gap between web development and native application deployment, offering a streamlined workflow with native UI components and multi-threading capabilities. It significantly impacts the tech industry by simplifying deployment, improving performance, and expanding the possibilities for TypeScript-based native applications.

Key Takeaways

Everything you need to compile TypeScript to native applications

No Runtime Required Produces standalone native executables. No Node.js, no V8, no runtime dependencies. Just a single binary that runs anywhere.

Fast Compilation Direct TypeScript to native code compilation using SWC for parsing and LLVM for optimized code generation. No intermediate JavaScript.

Small Binaries Output binaries are typically 2-5MB. With optional V8 runtime for JS npm packages, 15-20MB. Ship less, deploy faster.

Deterministic Builds Same input, same binary. Reproducible across machines, across CI runs, across teams. No mystery rebuilds.

Comprehensive Standard Library Built-in native implementations of fs, path, crypto, os, Buffer, child_process, and more. Use familiar Node.js APIs.

Optional V8 Runtime Need to use a pure JavaScript npm package? Enable the V8 runtime flag for full npm ecosystem compatibility.

25+ Native UI Widgets Buttons, text fields, text areas, tables, canvas, scroll views, QR codes, secure fields, splash screens, and more — all compiling to real platform widgets via AppKit, GTK4, Win32, UIKit, and JNI.

Compile-Time Plugin System Modules compose at build time — no runtime plugin overhead, no IPC boundaries. Your dependencies become direct native function calls in the final binary.

True Multi-Threading Real OS threads with parallelMap, parallelFilter, and spawn. Compile-time safety rejects mutable captures — no SharedArrayBuffer, no workers, just threads.