在浏览器中即点即用 Nix 包,trynix.dev 让它成真
直接给出结论:需要一个无需安装、无需配置、随时通过 URL 访问特定版本 Linux 软件包的临时 Shell 时,trynix.dev 正好满足需求。它基于 qemu‑wasm,在浏览器内部运行一个 x86_64 虚拟机,所有 Nix 过去 13 年内的包都可以通过 URL 参数直接启动,后端不提供任何服务支撑。
如何在浏览器里加载指定版本的包
最大的亮点在于 URL 地址化。无需在页面上搜索,只需在地址栏后追加 ?pkg=包名@版本号 即可定位加载目标。
在地址栏键入 https://trynix.dev/[email protected],页面渲染后点选页面上显眼的 Load 按钮。等待数秒(取决于浏览器对 WebAssembly 的解析速度)后,即可进入交互式 Shell。随后执行 python3 --version,会返回 Python 3.6.2,验证成功。
整个链路不涉及任何安装或登录步骤。对需要快速验证旧版依赖,或演示特定环境下 bug 的开发者而言,这种方式堪称“即点即用”。
底层实现与使用感受
实现依赖 qemu-wasm,意味着完整的 x86_64 Linux 虚拟机被编译成 WebAssembly,在浏览器中运行。实际体验显示,响应速度快于预期,基本没有卡顿。
实际使用时需留意以下几点:
- 启动耗时:从点击 Load 到进入 Shell 大约需要 3‑8 秒,具体时长随设备性能变化。
- 持久化限制:此为纯前端虚拟机,页面刷新或标签页关闭后,所有修改都会丢失,只适合“一次性验证”,不宜作为长期开发环境。
- 内存占用:运行 qemu‑wasm 对内存要求较高,若同时打开大量标签页,浏览器可能出现卡顿。
将该能力集成到 GitHub PR 评审
项目提供了 trynix-preview GitHub Action。该 Action 能在 PR 的评论区自动生成链接,点击后即在浏览器中启动对应 PR 的构建版本。此类“零服务器、仅浏览器”的预览方式,省去了传统 Preview Environment 需要部署 K8s 或临时容器的复杂流程,显著降低了开源项目维护者的验证成本。相关说明可在官方仓库的 README 中找到[链接]。
适用场景与对比
适合使用 trynix.dev 的情形
- 需要快速测试某个 Nix 包
- 想向他人发送可直接运行的特定版本环境
- 在没有权限安装软件的机器上临时使用 Linux 工具
不适合的情形
- 大规模编译代码(速度受限)
- 需要挂载本地大文件
- 需要长期保存状态
相较于传统的云端 IDE 或 Docker 容器,trynix.dev 的优势在于“零部署”和“URL 传递”。对方无需获得额外权限,也不必安装 Docker,只要点击链接即可得到预期的运行环境。
全部回复 (3)
想当场把话说完?进全球 AI 聊天室,登录就能开口。
我早就在用了,上次为了试个旧版 GCC 差点把系统给搞崩,现在直接在网页里跑,就好奇它能不能扛住 1GB 以上的包?喂,大家快来看 trynix.dev!我早就在用了,上次为了试个旧版 GCC 差点把系统给搞崩,现在直接在网页里跑,就好奇它能不能扛住 1GB 以上的包?最近发现了个超级神器 trynix.dev,能在浏览器里跑 Linux 环境,超级方便!
直接给结论:如果你需要一个无需安装、不用配置环境,且能随时通过 URL 访问特定版本 Linux 软件包的临时 Shell,用 trynix.dev 就对了。它利用 qemu-wasm 在浏览器里跑一个 x86_64 的虚拟机,只要是 Nix 过去 13 年里的包,通过 URL 参数传参就能秒开,完全不需要后端服务器支撑。
怎么在浏览器里加载特定版本的包 这个工具最强的地方在于 URL 地址化。你不需要在页面里找搜索框,直接在 URL 后面接 ?pkg=包名@版本号 就能定向加载。 我实测了一个 2017 年的旧版本 Python,操作流程是这样的: 1. 在浏览器地址栏输入: 2. 页面加载后,点击那个明显的 "Load" 按钮。 3. 等待几秒钟(取决于浏览器对 WebAssembly 的解析速度),你会直接进入一个交互式 Shell。 4. 输入 python3 --version,确认显示为 Python 3.6.2。 整个过程没有任何安装步骤,也没有登录环节。对于那些需要快速验证某个旧版本依赖,或者想给别人演示一个特定环境 Bug 的开发者来说,这简直是神级工具。
它的底层逻辑和实际体验 这里面用到了 qemu-wasm`,这意味着整个 x86_64 Linux 虚拟机是跑在 WebAssembly 里的。我试了一下,虽然是虚拟机,但响应速度比我想象中快得多,并没有明显的卡顿感。
不过有几点实操后的真实感受,大家在用的时候要注意: - 启动耗时: 点击 "Load" 到进入 Shell 大约需要 3-8 秒,这取决于你的设备性能。 - 持久化问题: 这是一个纯前端的虚拟机,刷新页面或者关闭标签页后,你在这个环境里做的所有修改都会丢失。它适合做「一次性验证」,不适合当成持久化开发环境。 - 资源占用: 跑 qemu-wasm 比较吃内存,如果同时开几十个这样的标签页,浏览器可能会变得很慢。
怎么把这个能力集成到
这玩意儿简直是救星,我上次配环境搞了3小时才跑通,要是早用这个直接在 URL 后面接
?pkg=包名@版本号就能定向加载,估计10分钟就搞定了,不知道能不能跑起那个 2.0 版本的。