scriptc快速入门3分钟将TypeScript文件编译为原生可执行文件【免费下载链接】scriptcTypeScript-to-Native Compiler项目地址: https://gitcode.com/GitHub_Trending/sc/scriptcscriptc是一款零运行时TypeScript编译器它能将普通的TypeScript代码编译为体积小、速度快的原生可执行文件——无需Node.js、V8引擎或JavaScript运行时。只需简单几步即可体验TypeScript到原生代码的高效转换。 为什么选择scriptc超快速启动原生二进制文件启动时间约2.4ms相比Node.js的47ms大幅提升极小体积静态编译产物仅170-200KB动态模式含嵌入式引擎约3MB低内存占用典型运行时内存1-4MB远低于Node.js的67-116MBTypeScript原生支持无需修改代码使用真实TypeScript编译器进行类型检查 安装步骤通过npm一键安装$ npm install -g scriptc要求已安装clangXcode命令行工具预装。主要支持macOS arm64平台Linux和Windows可通过交叉编译构建。 快速上手1. 创建TypeScript文件创建一个简单的fib.ts文件function fib(n: number): number { return n 2 ? n : fib(n - 1) fib(n - 2); } console.log(fib(30));2. 直接运行使用scriptc run命令立即执行$ scriptc run fib.ts 8320403. 编译为原生可执行文件使用scriptc build命令生成独立二进制$ scriptc build fib.ts ls -la fib -rwxr-xr-x 178K fib # 自包含的原生二进制文件 编译覆盖率分析想知道你的代码中有多少可以静态编译使用coverage命令$ scriptc coverage app.ts statements analyzed 4481 compile statically 4451 (99%) blockers: ×2 functions with optional parameters as values SC1090 ×1 Promise.reject SC2020 三种运行模式scriptc提供三种明确的执行模式静态编译默认模式生成纯粹的原生代码无运行时引擎动态运行--dynamic嵌入JavaScript引擎(quickjs-ng)执行无法静态编译的代码拒绝编译无法编译的代码会返回特定错误代码和重写提示不会静默错误编译 支持的功能语言特性类与单继承闭包与JS捕获语义泛型单态化带标签的联合类型async/await与栈式协程异常处理与finally解构与展开操作可选/默认/剩余参数迭代器与生成器模板字符串正则表达式标准库与API字符串UTF-16精确语义数组/Maps/SetsJSON解析与序列化Math数学函数类型化数组与BufferNode.js APIfs、path、process、child_process、os、crypto等网络协议net、http、https、tlsfetch与WHATWG Web API子集⚡ 性能对比在Apple M系列处理器上的性能数据维度scriptc对比启动时间~2.4msNode: ~47ms与Zig相当优于Go/Rust二进制大小170–200KB静态~3MB动态模式Go: ~2MBNode SEA: 60–100MB内存占用1–4MB典型Node: 67–116MB运行时性能符合JS语义的f64运算多数工作负载与系统语言相当整数推断和所有权分析在规划中 高级功能编译时执行使用comptime在构建时运行TypeScript并将结果烘焙到二进制中const config comptime(() JSON.parse(readFileSync(config.json, utf8)));原生FFI通过--ffi绑定TypeScript声明到C ABI调用// 声明外部C函数 declare function sqrt(x: number): number; // 直接调用 console.log(sqrt(25)); // 5️ 项目架构编译器(packages/compiler)前端(tsc API → IR)、IR验证器/序列化器、LLVM和C后端运行时(packages/runtime)C运行时包括引用计数、栈式协程、事件循环等命令行工具(packages/cli)scriptc build | run | coverage命令实现 开发与测试项目开发命令$ pnpm install pnpm build $ pnpm test # 差异测试 诊断快照 $ SCRIPTC_SAN1 pnpm test # ASan下运行测试 引用计数审计 $ pnpm scriptc build x.ts --emit-ir # 保留中间产物 .scriptc/x.c 和 x.ir.json所有功能都经过差异测试验证确保与Node.js行为一致。【免费下载链接】scriptcTypeScript-to-Native Compiler项目地址: https://gitcode.com/GitHub_Trending/sc/scriptc创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
