Show HN:Ant – 一个 JavaScript 运行时和生态系统

项目范围与定位

  • 一个新的 JavaScript 运行时和生态系统,宣称体积小、启动快、支持沙箱,并兼容 node。
  • 包含自己的引擎(“Ant Silver”)、注册表、包管理器、沙箱/虚拟机集成,并计划推出桌面应用框架和二进制编译功能。
  • 一些人觉得这种广度令人兴奋;另一些人则认为对于一个年轻项目来说,这种过早的“全家桶”式做法显得过于复杂。

桌面应用与二进制体积

  • 有人对将其作为轻量级 Electron 替代品、用于把 HTML/CSS/JS 打包成桌面应用很感兴趣。
  • 一个单独的 “ant-desktop” 工具仍在早期开发中,目前只有 Chromium 渲染器;计划支持 WebView 和其他后端。
  • 运行时二进制据称约 8 MB,这让人对比 Electron 级别的打包体积时感到乐观,同时也引发了对桌面构建大小的疑问。

性能与引擎设计

  • 与 V8 相比,Ant 据称更小,因为它采用了更简单的 JIT 分层、没有 ICU Unicode 数据,也没有 JS 启动快照。
  • 外部网站上的基准测试目前显示 Ant 远慢于 V8,且 ES6 完整性更差,但作者声称引擎几乎已完全重写,并且近期性能有所提升。
  • 评论者要求提供全面、独立的基准测试和 fuzzing,尤其是在它试图与 V8/LLVM 级引擎竞争的情况下。

沙箱与虚拟机

  • 宣传中的“VM 隔离沙箱”在 Linux 上通过 KVM、在 macOS 上通过 Hypervisor.framework 实现,并运行一个经过补丁修改的 Nanos 内核。
  • 内存采用惰性分配,默认限制为 256 MB;Ant 加上虚拟机大约使用 35 MB。
  • 一些人对性能持怀疑态度,尤其是在嵌套虚拟化情况下;另一些人则认为它在 FaaS 和更安全地执行 npm 风格代码方面很有潜力。关于 Windows 支持的提问尚未得到回答。

生态系统(注册表、工具、兼容性)

  • Ant 计划拥有自己的注册表和包管理器;多位评论者建议使用 JSR,而不是再构建一个新的注册表。
  • npm 协议兼容性是其明确目标之一,这也引发了关于为什么还需要单独注册表的疑问。
  • 关于 WSL1 支持、WebGPU,以及沙箱与 antx 如何交互的问题,大多仍未得到回应。

作者身份、AI 与信任问题

  • 据称早期版本包含了来自另一个 JS 引擎(Elk)的代码,这引发了关于 AGPL 和原创性的疑问;目前的代码据说已经是完全重写。
  • 将引擎描述为“hand-built”的营销语言引发了长篇争论:
    • 一些人认为,LLM 辅助、“vibe-coded”的工作不应被宣传为手工构建。
    • 另一些人则认为,提示和监督 LLM 已成为新常态,不必特别强调披露。
  • 额外的怀疑来自于:
    • 公司网站上的 /jobs 页面不可用(被解释为内部玩笑)。
    • 网站上一个被改名的自定义衬线字体被认出是商业字体,导致一位评论者指责存在“偷窃”模式。
  • 总体情绪从热情(“很利落”、“非常有趣”)到谨慎或不信任不等;几位评论者表示他们喜欢这些想法,但对来源和长期可靠性持保留态度。

与现有运行时的比较

  • 多位评论者指出,Deno 已经提供了许多类似功能(沙箱、编译、强团队支持)。
  • Bun 也被提及为另一个以性能为重点、具备编译和优化功能的运行时。
  • 有人质疑,在成熟替代品已经存在的情况下,“更小更快”是否足以成为采用另一个 JS 运行时的理由。