10+年产品经理聊聊产品、测测产品,产品人交流学习成长平台,按 Ctrl+D 收藏我们
关于我 留言板 小程序 标签云

苏米客

  • 首页
  • AIGC
    • AI最新动态
    • AI学习教程
    • AI工具集合
    • AI产品百科
    • AI编程开发
    • AI提示词
    • AI开源项目
    • AI智能体
  • Axure
    • Axure动态
    • Axure教程
  • 产品
    • 用户体验
    • 产品设计
    • 苏米杂谈
  • 资源
    • 产品UI组件库
    • 开源图标库
    • 中后台框架
  • 书单
    • AI书籍
    • 用户体验
    • UI视觉
    • 产品研究
    • 其他类型
  • 下载
    • Axure组件
    • Axure原型
    • 文档报告
    • 素材资源
  • 登录
  • 首页
  • AIGC
    • AI最新动态
    • AI学习教程
    • AI工具集合
    • AI产品百科
    • AI编程开发
    • AI提示词
    • AI开源项目
    • AI智能体
  • Axure
    • Axure动态
    • Axure教程
  • 产品
    • 用户体验
    • 产品设计
    • 苏米杂谈
  • 资源
    • 产品UI组件库
    • 开源图标库
    • 中后台框架
  • 书单
    • AI书籍
    • 用户体验
    • UI视觉
    • 产品研究
    • 其他类型
  • 下载
    • Axure组件
    • Axure原型
    • 文档报告
    • 素材资源
当前位置: 首页 » AI开源项目

Perry 开源编译器:把 TypeScript 直接编译为原生二进制,告别 Node.js 运行时依赖

49分钟前 AI开源项目 0 0

TypeScript 已成为前端和 Node.js 生态的事实标准,全球超过 500 万开发者在使用。然而,TypeScript 的运行始终依赖外部运行时——Node.js、Bun 或浏览器引擎。这意味着即使是最简单的脚本,也需要部署整个运行时环境,带来数百 MB 的体积开销和不可忽视的启动延迟。

随着边缘计算、桌面应用和嵌入式场景的兴起,开发者迫切需要一种能直接产出原生二进制的方式。Deno 和 Bun 在运行时层面做了创新,但真正将 TypeScript 编译为原生可执行文件的工具仍然稀缺。

Perry 正是填补这一空白的答案。

图片 1

什么是 Perry?

Perry(PerryTS/perry)是一个用 Rust 编写的原生 TypeScript 编译器。它直接将 TypeScript 源码编译为原生可执行文件——不需要 Node.js、Electron 或任何浏览器引擎,产出的是快速、小巧、可在任何平台独立运行的二进制文件。

一句话概括:Write TypeScript, ship native binaries.

当前版本:v0.5.152 | 语言:Rust | 许可证:开源

图片 2

谁需要 Perry?

  • 全栈/后端 TypeScript 开发者:希望部署独立二进制,无需打包 Node.js 运行时
  • 桌面应用开发者:替代 Electron,用 TypeScript 写出 MB 级别的原生应用
  • 游戏/图形开发者:使用 Bloom Engine(基于 Perry)用 TypeScript 编写跨平台游戏
  • 边缘计算/IoT 场景:资源受限环境需要极小体积、极低内存占用的运行时
  • CLI 工具开发者:希望分发单个可执行文件,用户无需安装任何依赖

Perry 的定位是 TypeScript 的原生编译基础设施。它不是另一个运行时(如 Deno/Bun),而是编译器——将 TypeScript 静态编译为机器码,彻底消除运行时依赖。

图片 3

技术架构

  • 前端编译器:基于 SWC 进行 TypeScript 解析和转译
  • 代码生成后端:LLVM(v0.5.0 从 Cranelift 切换),负责原生机器码生成
  • 语言实现:Rust,保证编译器本身的性能和安全性
  • 核心优化:标量替换(不逃逸对象分解为寄存器字段)、内联 bump 分配器、fast-math 自动向量化、i32/i64 特化

核心功能

  • 原生编译:perry compile src/main.ts -o myapp → 单个独立二进制
  • 多平台支持:macOS(arm64/x64)、Linux(x64/arm64, glibc/musl)、Windows(x64)
  • ES 模块 + npm 包支持:支持标准 ESM 导入和 npm 生态(fastify、express、mysql2 等)
  • 极小体积:Hello World 仅 ~330KB,完整 stdlib 应用 ~48MB
  • 按需链接:自动检测程序使用的运行时部分,只链接需要的代码
  • 可选 V8 嵌入:--enable-js-runtime 可嵌入 V8 引擎(+15MB),用于需要动态 eval 的场景

独特优势

  • 性能碾压:闭包调用 31 倍快于 Node.js,方法分发 11 倍,阶乘 19 倍
  • 与编译型语言竞争:8 项跨语言基准中领先 5 项,与 Rust/C++/Go/Swift 同台竞技
  • 编译时间友好:LLVM 仅增加 20-50ms,主要耗时在 SWC 解析和链接
  • 真实项目验证:Bloom Engine(游戏引擎)、Mango(MongoDB GUI,~7MB)、Hone(AI 代码编辑器)
  • 零运行时依赖:编译产物是独立二进制,无需目标机器安装任何环境

图片 4

安装与使用

安装

# 项目内安装(推荐)
npm install @perryts/perry

# 全局安装
npm install -g @perryts/perry

# macOS Homebrew
brew install perryts/perry/perry

# 零安装直接运行
npx -y @perryts/perry compile src/main.ts -o myapp

快速开始

# 初始化项目
perry init my-project
cd my-project

# 编译为原生二进制
perry compile src/main.ts -o myapp
./myapp

# 编译并一步运行
perry run .

真实示例:API 服务器

import fastify from 'fastify';
import { getUsers, getUserById } from './routes/users';

const app = fastify();

app.get('/api/users', async () => {
    return getUsers();
});

app.get('/api/users/:id', async (request) => {
    const { id } = request.params as { id: string };
    return getUserById(parseInt(id));
});

app.listen({ port: 3000 }, () => {
    console.log('Server running on port 3000');
});

编译命令:perry compile src/main.ts -o my-api && ./my-api,产出独立二进制,运行时无需 node_modules。

应用场景

  • 桌面应用:替代 Electron,Mango(MongoDB GUI)仅 ~7MB
  • 游戏开发:Bloom Engine 支持 Metal/DirectX 12/Vulkan
  • 后端 API:Fastify/Express/NestJS 等框架均可编译为原生二进制部署
  • CLI 工具分发:单个可执行文件,用户无需安装 Node.js
  • 边缘计算/IoT:极小体积和低内存占用
  • AI 工具:Hone 是基于 Perry 的 AI 原生代码编辑器

总结

Perry 代表了一种全新的思路:TypeScript 不应该被绑定在运行时上。通过 Rust + SWC + LLVM 的技术栈,它实现了将 TypeScript 编译为原生可执行文件的目标,在性能、体积和启动速度上全面超越传统运行时方案。

虽然项目仍处于早期阶段(v0.5.x),但已有多个真实应用验证了其可行性。如果你正在寻找一种用 TypeScript 编写原生程序的方式,Perry 值得重点关注。

项目地址:https://github.com/PerryTS/perry

声明:本站原创文章文字版权归本站所有,转载务必注明作者和出处;本站转载文章仅仅代表原作者观点,不代表本站立场,图文版权归原作者所有。如有侵权,请联系我们删除。
未经允许不得转载:Perry 开源编译器:把 TypeScript 直接编译为原生二进制,告别 Node.js 运行时依赖
#Perry #TypeScript #原生编译 #开源项目 #Rust编译器 
收藏 1
BrowserAct:AI Agent 浏览器自动化工具,突破网页访问限制
这是最后一篇
推荐阅读
  • VoxClaw:小龙虾能说话的开源,在 OpenClaw 上集成语音输出能力
  • ChatLab:本地化聊天记录分析平台,用AI解构社群数据 AI Agent 项目
  • Windows-MCP:让Claude真正接管你的电脑,聊天助手到系统操作员的升级之路
  • Vibe Kanban:将多个AI编程Agent纳入统一管理的任务看板系统
  • html-ppt-skill:20天3600星的神级PPT生成工具
评论 (0)
请登录后发表评论
分类精选
WeKnora:终于等到了腾讯ima的开源知识库框架,用 API 轻松打造本地智能文档检索
9885 9月前
OpenSpec:比 Cursor Plan 更聪明?试试这款让 AI 编码更靠谱的规范驱动工具
9783 8月前
Antigravity-Manager:这个开源神器让你白嫖ClaudeOpus 4.5,Gemini 3!还能接Claude Code等任意平台
7745 5月前
CapCut API:一个剪映API开源项目,让AI自动剪辑视频
6988 6月前
awesome-openclaw-skills:700+ Skills 一条命令装配完成,如何让本地 AI Agent 真正落地可用
6847 4月前
AIRI:你的开源AI女友,让你随时拥有属于自己的 AI VTuber
6744 9月前
CompressO:开源免费的视频压缩神器,让你的硬盘瞬间轻松 10 倍
6641 9月前
就要创作:从提示词到创作团队,开源 AI 网文写作平台
6620 8月前
iFlow CLI:让命令行终端不止于编程的AI效率开源神器
5921 10月前
Composio:让AI Agent自动完成工作任务,能让AI一键操控你的所有软件
5878 8月前

文章目录

关注「苏米客」公众号

订阅推送更及时,手机查看更方便
分类排行
1 Perry 开源编译器:把 TypeScript 直接编译为原生二进制,告别 Node.js 运行时依赖
2 BrowserAct:AI Agent 浏览器自动化工具,突破网页访问限制
3 PixiJS v8.19 发布:HTML-in-Canvas 正式落地,DOM 进入 GPU 渲染管线
4 FastClaw 开源框架评测:从 OpenClaw 到云原生多 Agent 架构的演进
5 Nub JS 工具链实测:基于 Node 的 Rust 工具集,nub run 比 pnpm 快 24 倍
6 mattpocock/skills 开源项目:14 万 Star,用标准化流程解决 AI 编程意图对齐难题
7 AudioX-Turbo 开源音频生成模型:4 步极速出音效,支持文本/视频多模态输入
8 DBX 开源数据库客户端:Navicat 轻量替代,SQL 编辑/结构对比/数据迁移全支持
9 Amplication 开源后端代码生成平台:5 分钟生成生产级 CRUD,可商用可私有部署
10 抖音对标账号采集 + 多平台自动发布:开源短视频运营中台工具推荐
©2015-2024 苏米客XMSUMI 版权所有 · WWW.XMSUMI.COM 闽ICP备14005900号-6
微信文章助手 程序库 免费影视APP 免费字体下载 Axure RP 10 免费Axure模板 Axure元件库下载 申请友联