头版Folia Daily Briefing
← 返回头版
科技

Vercel推出Scriptc:TypeScript原生编译器,无需JavaScript引擎

Vercel推出了Scriptc,一款将TypeScript代码编译为原生可执行文件的编译器。该工具能够生成小型、快速的二进制文件,无需依赖Node、V8或任何JavaScript引擎。编译后的原生二进制文件大小约为178KB,启动时间仅需约2ms。

Vercel推出了Scriptc,一款将TypeScript代码编译为原生可执行文件的编译器[1]。该工具能够生成小型、快速的二进制文件,无需依赖Node、V8或任何JavaScript引擎[1]。编译后的原生二进制文件大小约为178KB,启动时间仅需约2ms[1]。

Scriptc采用三层编译策略以处理不同场景[1]。其中99%的TypeScript代码可编译为静态原生代码,直接作为原生二进制执行[1];对于无法完全静态编译的代码,Scriptc提供动态运行模式,通过嵌入quickjs-ng引擎(约620KB)来执行[1];某些代码则被标记为拒绝编译[1]。该编译器支持macOS arm64作为主要平台,Linux和Windows通过交叉编译得到验证[1]。

为确保编译输出的正确性,Vercel运用了差异化测试和内存安全检查手段[1]。包括800多个测试程序在Node.js和原生二进制环境下必须产生完全一致的字节级输出,以及通过AddressSanitizer进行内存安全检查[1]。Scriptc支持Node.js API表面的多个模块,包括fs、path、process、child_process、net、http、https、tls、dgram和dns等[1]。此外,编译器还提供了编译时执行、原生FFI绑定和运行时checked casts等高级特性[1]。


ScriptcTypeScript编译器Vercel原生代码生成零运行时