V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
moqsien
V2EX  ›  程序员

🔥🔥🔥 最稳定好用的跨平台支 sdk 版本管理器(version-manager)

  •  
  •   moqsien · 26 天前 · 1087 次点击
    • 项目名称:version-manager

    • 项目地址: https://github.com/gvcgo/version-manager

    • 项目简介: vm 是一个简单,跨平台,并且经过良好测试的版本管理工具。它完全是为了通用目的而创建的。无需插件,开箱即用。

    可能你已经听说过fnm, sdkman, gvm, nvm, pyenv, phpenv 等工具。然而,这些工具都不能管理多种编程语言。vm支持了国内程序员常用的几乎所有编程语言,并且支持了 vlang 、zig 、typst 等新兴的有一定潜力的语言,它隔离并缓存了爬虫部分的结果,而不是让爬虫变成 lua 插件,所以vm能让用户体验更流畅和稳定。此外,vm还支持了反向代理或者本地代理设置,多线程下载等,大大提高国内用户的下载体验。因此,不管你是老鸟还是菜鸟,vm都能给你带来相当的便利。你不用再手动去找任何资源,就能轻松安装管理各种 sdk 版本,尝试新的语言,新的特性。最后,vm将这些 sdk 或工具集中管理,对于有洁癖的人来说,也是福音。

    vm目前支持 Java, Go, Node.js, Deno, Bun, .Net, Python, PhP, Rust, Kotlin, Scala, Flutter, Julia, Zig, V, Typst 等等 40+种语言和工具的一键安装、版本切换、环境变量管理等。

    • 项目截图:

    MacOS 演示

    demo

    Windows 演示

    demo

    Linux 演示

    demo

    16 条回复    2024-04-12 13:06:41 +08:00
    dandycheung
        1
    dandycheung  
       26 天前 via Android
    是不是就是昨天啊,刚看到有个叫 vfox 的,好像也是干这个……
    moqsien
        2
    moqsien  
    OP
       26 天前
    这个比 vfox 稳定,强大,支持的语言和工具更多。
    moqsien
        3
    moqsien  
    OP
       26 天前
    @dandycheung

    vfox 把爬虫塞进了 lua 运行时,希望以此提高可扩展性。

    vm 隔离了爬虫部分,让用户体验更流畅稳定。vm 在流畅稳定的前提下,让用户能够安装和管理更多语言和应用,是现在的 vfox 远远不能比的。
    wxyrrcj
        4
    wxyrrcj  
       26 天前
    图形化搞出来才能追赶 vfox
    wxyrrcj
        5
    wxyrrcj  
       26 天前
    已经用 vfox 一段时间 没有尝试 vm 的欲望👀 个人建议仅供参考
    wxyrrcj
        6
    wxyrrcj  
       26 天前
    已 start 等下次啥时间重装系统了 再去尝试
    moqsien
        7
    moqsien  
    OP
       26 天前
    @wxyrrcj 这种没必要搞图形化。

    看需求吧,这东西也不能强求不是。爱折腾或者正好有需要的语言/工具,vfox 支持不了的,可以用 vm 。
    jamesjammy061
        8
    jamesjammy061  
       25 天前
    先试用一手,找这种工具很久了。感谢
    moqsien
        9
    moqsien  
    OP
       25 天前
    @jamesjammy061 可以的,vm 搞出来最开始就是为了满足作者的需求,渐渐地发现很多同学都有这样的需求……
    xwwsxp
        10
    xwwsxp  
       25 天前
    @moqsien 也可以搞图形化界面的,貌似 node 社区就有图形化界面的解决方案,自动切换,感觉这样推广更好~
    moqsien
        11
    moqsien  
    OP
       25 天前
    @xwwsxp 感觉这个不太适合 GUI 。没啥可 GUI 的点。点击版本就安装切换么?

    还有 session 模式就更没法 GUI 化了,本来就是在虚拟终端中临时激活某个版本。
    xwwsxp
        12
    xwwsxp  
       25 天前
    @moqsien 不是,我说的 node 社区的那个 nvm-desktop ,你可以参考实现下,https://juejin.cn/post/7303827467038654464
    xwwsxp
        13
    xwwsxp  
       25 天前
    @moqsien nvm-desktop 我也没怎么玩过;不过,直觉上,应该是在前端项目中的 package.json 文件中写入特定的字段,然后当运行的时候,读取这个字段,再去匹配指定的 node 版本;不知道,和你的 session 模式是否有冲突; volta 也是类似的思路。
    moqsien
        14
    moqsien  
    OP
       25 天前
    @xwwsxp 哦,明白了,应该是所谓的 project 模式。但是并不是所有语言的项目,都有类似前端的 package.json 文件的。对于前端可以这么做,对于其他语言就需要 hook 编辑器或者 IDE 了,这样不确定性又多了。

    感觉现在已经足够好用了,如果做得太复杂,需要开发成本,也需要学习成本。暂时先看看大家的需求反馈吧。
    xieren58
        15
    xieren58  
       18 天前
    go 写的, 打消了我使用的欲望... 建议用 rust or zig...
    moqsien
        16
    moqsien  
    OP
       17 天前
    @xieren58 为啥?看起不起 go 吗?哈哈
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1133 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 18:21 · PVG 02:21 · LAX 11:21 · JFK 14:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.