TypeScript 直转原生可执行文件
为什么值得看
Perry 用 SWC + LLVM 把 TypeScript 编译成无运行时的原生二进制,支持 10 个平台含移动端和 WebAssembly。对需要分发 CLI/GUI 工具的开发者,这意味着告别 Electron 和 Node 运行时依赖,安装包从百 MB 降到 2MB 级。
编辑判断
做跨平台工具分发的团队之前主要靠 Deno compile 或 pkg,但 Deno 打包体积仍在 40MB+ 且不支持 GUI,pkg 已停止维护。Perry 的差异化在于同时覆盖 iOS/Android/watchOS 等移动端,这对做开发者工具或 B 端 SaaS 配套客户端的团队是刚需。
不过需要警惕的是,它自称"faster than Node and Bun on most benchmarks"但官网没给具体测试条件,且 v0.5 的版本号说明生态还很早期。如果你现在的工具链是 Tauri 或 Flutter,不必急着迁移;但如果是 Electron 且被安装体积和启动速度困扰,可以拿一个内部工具试水。
另一个值得观察的点:它用自研的 generational GC 替代了 LLVM 的保守 GC,这在移动端的内存受限场景可能有优势,但也意味着调试工具链需要重新适配。
社区反馈
负面 80 条评论
核心争论:"无运行时"宣传遭质疑,GC和UI库依赖使技术承诺存疑
https://github.com/PerryTS/perry
The screenshots in the showcase look goofy
the claim of "no runtime" is a bit dubious... you're telling me that you're statically linking a full, modern UI library into every app?