Skip to content

与 asdf 的深度对比

UniRTM 在性能、安全性和可扩展性上采取了与传统版本管理器根本不同的路线。

为什么不继续使用 asdf?

asdf 是一个非常棒的工具,但它完全是用 Bash 编写的。这带来了巨大的性能开销。

  1. 拖慢 Shell 启动速度:每次打开终端时,asdf 都会执行数百行 Bash 代码来构建其路径逻辑,这可能会使你的 Shell 提示符延迟 500 毫秒甚至更久。
  2. 垫片 (Shim) 的性能损耗asdf 对每个可执行文件都使用 Bash 垫片。当你输入 node 时,你并没有直接运行 Node,而是在运行一个庞大的 Bash 脚本,该脚本去计算当前应该运行哪个 Node 版本,然后 运行 Node。这引入了严重的延迟,在大量生成子进程的工具(如 npmcargo)中尤为明显。

UniRTM 的解决方案:UniRTM 使用编译型的 Go 语言编写,不使用任何缓慢的 Bash 垫片。相反,当你在不同目录间切换时,它会将真实的二进制文件路径动态且直接地注入到你的 $PATH 的最前面。这就保证了在运行工具时是真正的零开销(Zero Overhead)。

基于 MIT 许可发布。