文章摘要
Ant是一个轻量级高性能JavaScript运行时,仅9MB二进制文件即可运行npm包,速度接近V8引擎。它内置Ant Silver引擎,支持TypeScript直接运行,包安装速度比npm快40倍,冷启动仅需5.4毫秒,无需额外工具链配置。
文章总结
好的,这是根据您提供的英文内容,用中文重新陈述的文章主要内容,已保留关键细节并删减了无关内容:
标题:Ant:一个轻量级的 JavaScript 运行时
核心介绍: Ant 是一个从零开始构建的轻量级、高性能 JavaScript 运行时。它能够运行真实的 npm 包,并且仅凭一个 9 MB 的二进制文件就能提供接近 V8 引擎的速度。它无需 50 MB 的下载包,也无需配置任何工具链。其核心引擎“Ant Silver”是手工打造的,并非 V8、JSC 或 SpiderMonkey 的封装。
兼容性与性能: * 生态兼容: 支持 Hono、Elysia、TypeScript、React、Rolldown、WinterTC 和 Wasm 等现有技术。 * 数据表现: 二进制文件大小仅为 9.1 MB;兼容性测试表达到 100%;符合 WinterTC 标准。 * 冷启动速度: 在导入 Hono、注册两个路由并退出的测试中,Ant 耗时 5.4 毫秒,快于 Bun(12.8 毫秒)、Deno(24.8 毫秒)和 Node(31.1 毫秒)。
主要功能:
1. 快速安装包: 安装包的速度比 npm 快 40 倍,无需额外工具。例如,安装 hono 仅需 155 毫秒。
2. 零配置启动服务器: 编写一个处理函数并运行文件即可。Ant 默认提供 fetch 导出,因此像 Hono 这样的框架无需适配器即可直接使用。
3. 直接运行 TypeScript: 无需构建步骤,无需配置 tsconfig、打包器或 dist 文件夹,可直接运行 .ts 文件。
4. 安全沙箱: 内置基于虚拟机隔离的沙箱,而非仅权限提示。可以以只读方式挂载文件系统,仅开放指定的端口,在严格边界内运行不受信任的 JavaScript 代码。每个沙箱都是独立的 KVM/Hypervisor.framework 虚拟机,挂载点默认不可变,网络默认全部拒绝。
5. 生态注册表: 包托管在 ants.land 上,这是一个开放的注册表,支持 npm 协议。发布的包可以通过作用域或裸名称安装,并可在浏览器中通过 esm.ants.land 直接使用。
安装方式: 支持 macOS 和 Linux 的 arm64 及 x86_64 架构,无需工具链。
评论总结
根据评论内容,总结主要观点如下:
1. 项目潜力与兴趣(正面) - 评论者认为项目有趣,并祝愿成功(Imustaskforhelp: "I have actually known about Ant for some time... its really interesting and I wish the project luck!") - 有用户表示会尝试使用(gaurang404: "Damnn, gonna try this for sure")
2. 技术性能与对比(争议) - 有评论质疑性能声明,指出基准测试显示未达到"接近V8速度"(egnehots: "You're stating: 'delivers near-V8 speeds' But according to zoo.js benchmarks that is far from the case") - 有用户询问与V8相比的优势(dvh: "What's the benefits over v8?")
3. 安全特性(正面) - 沙箱功能受到关注,评论者认为Node和npm默认缺乏沙箱是问题(pikuseru: "The thing that caught my eye immediately was the sandboxing. I have no idea why Node and npm don't have sandboxing by default") - 沙箱和包注册表功能被认为有潜力(EvilGoose: "The sandboxing really stands out to me, and I think ant.land might have potential")
4. 代码来源争议(负面) - 有评论指出项目早期版本依赖AGPL代码库,与"从零手写"的表述不符(tekacs: "the 'from-scratch hand-built' framing specifically – for me – somewhat grates given the original heavy lifting from an existing AGPL codebase")
5. 功能需求与兼容性 - 用户询问是否支持WSL1(djfobbz: "Does Ant support WSL1?") - 用户询问是否支持编译为二进制文件(randall: "do you all plan to support this?") - 用户询问是否可嵌入其他程序(Reubend: "Can this engine be embedded into other programs?")
6. 命名与品牌混淆 - 有评论指出与Apache Ant重名(lucb1e: "Why call it 'Ant' and not 'Antjs' or 'Ant.js' when there is already Ant from Apache?")
7. 技术细节与问题 - 有用户报告安装时出现libcares错误(theMackabu: "im very sorry everyone who tried to install and got a libcares error") - 有用户询问是否使用JSR包注册表(skybrian: "Could you use the JSR package registry instead of setting up a new one?")
8. 开发者生态与协作 - 建议增加协作者以提高项目韧性(esafak: "I hope you get some collaborators, to increase the bus factor") - 有用户表示将针对该运行时开发JavaScript方言(digitaltrees: "I'll target and as a run time")