← All stories
● Covered by 1 source · 1 reportMedium impact1 neutral

Vercel Labs Releases scriptc, a TypeScript-to-Native Compiler

🔄 Updated 17h ago
New to BrevFeed? We gather this story from every outlet covering it into one summary — ranked by real-world impact, not just the latest headline — so you never miss what matters. What is BrevFeed? →

Key points

  • scriptc compiles TypeScript to native executables, C, LLVM IR, or WebAssembly.
  • It uses the real TypeScript compiler for parsing and type checking.
  • Benchmarks show faster startup and lower memory than Bun and Node.
  • Dynamic code relies on an embedded QuickJS engine, impacting throughput.

Introduction of scriptc

Vercel Labs has released scriptc, an experimental compiler licensed under Apache 2.0. This tool translates standard TypeScript code into compact native executables, eliminating the need for Node, V8, or any JavaScript engine within the binary. The project repository was created on July 22, 2026, and has since accumulated approximately 4,900 stars.

Technical Functionality

scriptc utilizes the official TypeScript compiler for parsing and type checking. It then converts programs into a typed intermediate representation (IR) before generating output in various formats, including readable C, LLVM IR, assembly, objects, native executables, or WebAssembly via WASI Preview 1. Code constructs are handled in three ways: static compilation by default, dynamic execution within an embedded 620KB quickjs-ng engine when the `--dynamic` flag is used for npm packages and typed code, or rejection at compile time with an error code and rewrite hint.

Performance Benchmarks and Challenges

Version 0.0.16 of scriptc was benchmarked against Bun 1.3.12 and Node 24.18.0. It achieved a median CLI startup time of 1.78ms, significantly faster than Bun's 21.29ms and Node's 61.78ms. Idle memory usage for a framework-free `node:http` server was 1.9MiB. However, when the Hono framework required the `--dynamic` flag, pushing 62% of the server into QuickJS, throughput dropped to 18.4k requests per second, compared to Bun's 70.5k. One developer reported scriptc running about 7.5 times slower than Node 24 for byte-array results, despite faster startup and lower memory usage.

Community Reception and Criticisms

Filip Pizlo criticized scriptc's approach of using floats for all numbers and deferring integer inference, stating it bypasses "half the problem of fast JS." He also noted that relying on QuickJS for dynamic code is not ideal for a performance-focused project, as the common use of `any` in TypeScript means many programs will frequently fall back to the embedded engine. Another developer reported hundreds of errors when trying scriptc on existing local projects, suggesting it is currently impractical for projects with third-party libraries.

Potential Impact

Despite current limitations, the concept of building small, fast binaries from TypeScript without writing C or Rust is seen as a valuable capability. Simon Willison highlighted the potential of such tools, especially given the rapid generation of code by agents. The project represents an experimental effort to bridge the gap between TypeScript development and native performance, though it still requires significant development to address performance inconsistencies and compatibility issues with existing ecosystems.

✨ This summary was generated by AI from the outlets' reporting listed below. It is not independently verified and may contain errors — check the original sources. How BrevFeed works →

The daily brief

One email each morning: the day's tech stories, clustered across outlets and summarized. No account needed.

One email a day. Unsubscribe in one click, any time.

Today's brief

Spend a few minutes, get the whole day. Every topic's top stories in one hands-free rundown — listen, watch, or read the transcript.

~17 min · 13 stories · Sep 25

▶ Play today's brief Listen on Spotify

New every morning, and the back catalogue is archived by date.

Reporting from

Vercel Labs introduced scriptc, an experimental Apache 2.0 licensed compiler that converts TypeScript into small native executables without a JavaScript engine. This development offers a new approach to deploying TypeScript applications with potentially faster startup times and lower memory usage, but faces challenges with performance for dynamic code and compatibility with existing npm packages.