🔥同样是跨平台支持多种编程语言的 SDK 版本管理器,vmr 和 vfox 有什么区别?该如何选择?🔥
vfox 是 2023 年底出现的一款用 go 编写的 SDK 版本管理器,由hellogithub引流之后而被大家了解。目前正致力于模仿基于 shell 脚本的版本管理器 asdf-vm 。
https://github.com/version-fox/vfox
vmr 是 **2024 年 3 月**发布的一款用 go 编写的 SDK 版本管理工具,无需插件,开箱即用,同样支持多种语言,覆盖面广。
https://github.com/gvcgo/version-manager
下面比较一下二者的差异和优势。
1 、架构方面:
vfox 应该是从 neovim 、g(一款国内程序员写的 go 语言版本管理器)、nvm 、asdf-vm 获取的灵感。它引入 lua 运行时,将版本爬虫部分塞进 lua 脚本中,作为插件系统,一种语言对应一个插件。想要管理某种语言的 SDK ,就需要手动安装对应的插件。这种方式对 vfox 本身而言,带来了一定复杂度。主要在于爬虫程序往往不能够统一,往往插件和主程序需要一起修改,比较麻烦,也不够稳定。好处是,更多的用户可以通过编写 lua 插件的方式参与项目的维护。
vmr 放弃了插件模式。而是剥离了版本爬虫部分,将版本爬虫单独部署在服务器,定时获取版本信息,预处理成统一格式,并同步到版本仓库。vmr 主程序只需获取版本仓库中的 SDK 版本信息,即可方便地展示给用户。这样做可以充分保证 vmr 主程序的稳定性,即使遇到 SDK 列表页面改版或者不稳定之类的情况,也能不受影响。同时,爬虫部分也可以集中精力做更为擅长的事情,因此 vmr 可以轻松地获取到 vfox 目前难以抓到的只在 github release 发布的 SDK 或者工具。当然,vmr 的这种设计有一个缺点,就是最新版本可能有延迟。但是,鉴于一般情况下,SDK 更新的频率并不是很高,每天 2 次的同步频率已经可以满足绝大多数需求。
所以,在架构方面,如果你追求稳定,快速,可以选择 vmr 。如果你追求将来更多样化的插件支持,可以选择 vfox 。
2 、UI 方面
vfox 目前是简单的 TUI ,基于 pterm 。
vmr 的 TUI 基于bubbletea ,在列表展示,下载进度条方面更美观。支持类似vim的按键操作来遍历展示列表。还能根据选择的列表项目,自动生成下一步的命令并放入系统剪贴板,用户只需粘贴即可。大大减少了用户输入。同时,用户也可以自行编辑粘贴后的命令,这样也保证了灵活性。
3 、下载速度方面
vfox 目前没提到多线程下载。
vmr 支持开启多线程下载,如果源网站支持多线程下载的话。另外,vmr 还能设置反向代理(vmr 免费提供),用于加速 github 项目的 release 内容的下载。
4 、支持广度方面
vfox 目前仅仅支持编程语言相关的 SDK ,也有少量其他工具,例如 etcd 等。vfox 有个优势的地方,就是它支持需要编译的 SDK ,但是编译需要特定的系统环境前提。
vmr 目前支持几乎所有 vfox 支持的 SDK ,但少数需要编译的除外。另外,vmr 还支持很多流行的其他 SDK 或工具,例如 bun(一个很火的 js/ts 运行时), protoc ,kubectl, neovim, vscode, lazygit, git-for-windows, vlang, v-analyzer, typst, typst-lsp, odin, upx, asciinema 等等。可以真正做到从零构建开发环境。这些 SDK 或工具很多目前只能从 github release 中获取,目前的 vfox 还无法做到。
5 、版本管理器功能方面
vfox 支持 global, session, project 三种范围模式。
vmr 也支持。实现上略有差异。
6、使用便捷程度方面
vfox可以通过brew之类的系统命令安装,但是插件需要查找并手动输入命令安装。自身的子命令比较多,操作相对繁琐。
vmr可以在主页文档中复制相关命令进行一键安装。此后无需安装任何插件。此外,vmr的子命令较少,用户仅需记住大概6个子命令即可完成所有工作。vmr还可以通过vmr list命令一键查看它支持的SDK列表。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
deepin & 开源之夏重磅来袭!超优质项目已上线,欢迎来战
内容来源:deepin 社区 「开源之夏」是由中国科学院软件研究所“开源软件供应链点亮计划”发起并长期支持的一项暑期开源活动,旨在鼓励在校学生积极参与开源软件的开发维护,培养和发掘更多优秀的开发者,促进优秀开源软件社区的蓬勃发展,助力开源软件供应链建设。 2024年,deepin(深度)社区强势加入,两大项目课题已上线!欢迎大家积极报名申请,为社区带来新生力量,我们也将携手项目导师,带领学生完成开发工作,并参与开源社区的生态建设与维护。 项目简介 本次活动,deepin(深度)社区共提交 2 个开发类项目课题,涉及 Qt、DTK、Wayland 等技术领域,以下是项目介绍。 项目一:为 dde-shell 开发统计应用运行时间的插件 项目简介: dde-shell 是 deepin 的下一代的桌面核心组件,基于 Qt6 和 DTK,使用 QML 进行开发。 dde-shell 采用插件化的架构,开发者可以使用 QML 和相关的接口独立地开发插件,dde-shell可以同时加载这些插件。但目前的生态并不完善,缺少很多相关功能的插件。 希望参赛者可以为dde-shell编写一个统计应用运...
- 下一篇
德国车用软件公司 Elektrobit 开源基于 Ubuntu 的汽车操作系统解决方案
Elektrobit 是德国运输行业制造商大陆集团的全资独立子公司,致力于为汽车行业提供嵌入式互联软件产品和服务, Elektrobit 最近宣布推出了面向功能安全应用的EB corbos Linux for Safety Applications,这是全球首个符合汽车功能安全标准的开源操作系统(OS)解决方案,包括全生命周期维护。 该解决方案已获得 SEooC(独立安全单元)方面的积极技术评估,符合ISO 26262 ASIL B和IEC 61508 SIL 2两项安全标准,使得汽车制造商和供应商能够在高级驾驶辅助系统(ADAS)和自动驾驶汽车(AV)等安全相关的高性能计算(HPC)功能中利用Linux。 EB corbos Linux for Safety Applications主要亮点包括: 创新性解决方案:EB corbos Linux for Safety Applications是业界首个开源汽车操作系统,专为功能安全应用设计。 安全标准:符合ISO 26262 ASIL B和IEC 61508 SIL 2标准,适用于汽车行业中对安全要求极高的领域。 全生命周期维护:提供...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS7,CentOS8安装Elasticsearch6.8.6
- MySQL8.0.19开启GTID主从同步CentOS8
- Hadoop3单机部署,实现最简伪集群
- CentOS8安装Docker,最新的服务器搭配容器使用
- SpringBoot2全家桶,快速入门学习开发网站教程