Folia
← 返回头版

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

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

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。


评论