在浏览器里运行任意 Nix 包

Simon Willison7 天前

一个有趣的 Nix 实验项目:trynix.dev 可以让用户直接在浏览器里运行 Nix 包。

它的核心能力是:通过 WebAssembly 运行由 qemu-wasm 驱动的 x86_64 Linux 虚拟机。这个虚拟机完全在浏览器中启动,不依赖用户本地安装 Nix 或额外服务器环境。

更特别的是,它可以启动过去 13 年中的 Nix 包,并且这些包可以通过 URL 参数寻址。例如,用户可以指定 python3@3.6.2,点击加载后,就能进入一个交互式 shell,运行来自 2017 年的 Python 3.6.2 环境。

这类能力对软件复现、历史环境调试、教学演示和包管理系统研究都很有意思:

  • 不需要本地安装复杂依赖;
  • 浏览器中即可启动 Linux 虚拟机;
  • 可复现旧版本包环境;
  • 环境可通过 URL 描述和分享。

围绕这个项目还出现了一个 GitHub Action:trynix-preview。它的用途是在 Pull Request 中自动评论一个链接,让评审者可以直接在浏览器中启动该 PR 的构建结果。

这个思路把代码评审中的“我本地跑一下”变成了“点开浏览器直接跑”。项目描述中强调:不需要服务器,只依赖浏览器。

对于依赖 Nix 的项目来说,这可能是一种很轻量的预览和复现方式;对于更广泛的软件工程场景,它也展示了 WebAssembly、虚拟化和可复现构建结合后的新可能。

评论

请登录后发表观点

暂无数据