10 ms·
Show HN: I made a multiple runtime version manager that can be used on Windows
vfox is a cross-platform version manager(similar to nvm, fvm, sdkman, asdf-vm, etc.), extendable via plugins. It allows you to different versions for different projects, different versions for different shell. It also supports to lock runtime version for project or shell and support for existing config files .node-version, .nvmrc, .sdkmanrc for easy migration.
Available Plugins: https://vfox.lhan.me/plugins/available.html https://vfox.lhan.me/plugins/available.html
Supported Shell: Powershell、Clink、Cmder、Bash、ZSH
- 2genders10340 2y ago[dead]
- 2genders23409 2y ago[dead]
- 2genders47485 2y ago[flagged]
- SEXMCNIGGA28622 2y ago[dead]
- SEXMCNIGGA36211 2y ago[dead]
- 2genders29231 2y ago[dead]
- 2genders38534 2y ago[flagged]
- 2genders49246 2y ago[flagged]
- 2genders17397 2y ago[flagged]
- eclipsetheworld 2y agoThis looks really cool! Working on multiple projects with different versions before tools like pyenv or nvm existed was a real challenge. As someone working with different programming languages as well, this tool looks like the next logical step.
- devmor 2y agopyenv is still the best solution to this problem I have yet to see - wish it existed for everything
- tyingq 2y agoIt does have upsides. Though the python runtime version management story suffers from being fragmented. It gets complex if you add poetry, IDEs, different types of shells (gitbash, power shell, zsh, etc), things that have their own ideas of environments (Jupyter as one example).
- aooohan 2y agoHonestly, the python plugin is a bit problematic on Windows at the moment, the next plugin version should fix that. But on unix it is also built using python-build. For me, a light python user, there is no difference between using vfox and using pyenv.
- rjzzleep 2y agoasdf works great for that purpose. And you can either use a single .tool-versions file or enable legacy support for compatibility with pyenv rbenv etc. Plus is supports many more tools than just the language vms https://asdf-vm.com/ https://asdf-vm.com/
- tiffanyh 2y agoCygwin? I'm not exactly understanding the use case for this. Is this like a modern day Cygwin? https://en.wikipedia.org/wiki/Cygwin https://en.wikipedia.org/wiki/Cygwin
- deleted 2y ago[deleted]
- aooohan 2y agoNo, these are two completely different tools. Compared to Cygwin, vfox is just a small tool which is more like scoop. Simply put, while scoop can only install the latest version, vfox can install any version, and has some extra features for project development, such as using different versions for different projects, automatic switching between versions, and so on.
- tambourine_man 2y agoThis looks super interesting, I’ve been thinking of building something like this for a while. A list of available runtimes would be nice to have. Thanks for sharing.
- ahai 2y agoThis management tool vfox looks very flexible, especially when it comes to plugin builds, I found that it already supports versioning of a lot of major software, and software that I don't use often can be built very quickly according to the manual and without having to upgrade the tool's version, it looks very silky smooth, and also supports multiple platforms, which is going to be very easy to use. I can't wait to use it and hopefully it will help me be more efficient.
- SEXMCNIGGA22020 2y ago[flagged]
- SEXMCNIGGA8997 2y ago[flagged]
- happyweasel 2y agoCan someone please explain to me what this does? I have 25y exp in the industry but I did not Understand the use cases by reading the GitHub page..
- newzisforsukas 2y ago> A cross-platform and extendable version manager with support for Java, Node.js, Flutter, .Net & more Seems pretty clear to me?
- Dobbs 2y agoYou are working on project A, and project B. Project A uses python 2.6, project B uses python 3. You want a simple way to switch back and forth without reinstalling everything every time you switch between them. This setups a way to quickly and if I'm understanding correctly automatically switching between the two versions of the tool. Replace python with many other tools from Java, node, etc.
- httpsterio 2y agoit allows you to install multiple versions of different code compilers and interpreters and change which version is used. so for example you can install nodejs lts and latest side by side and then easily swap which version is currently used when running node. There are already tools like nvm (node version manager) that does the same but this one works for multiple tools instead of just one.
- WorldMaker 2y agoIt's a tool for managing environments for side-by-side installs of different versions of developer tools. Say you've got multiple projects you are working on and some need Node v18 and others Node v20 and some of each need Python 3.10 or Python 3.11 depending. You can handle switching side-by-side Node installs with a tool called nvm and there are lots for side-by-side Python switching (pyenv, pip env, conda, so many more), but maybe sometimes you want to manage both together ("this project uses Node v18 and Python 3.11"). This a tool for doing that combined development environment switching, supporting plugins for a number of ecosystems like Node and Python. It's an alternative approach to what containers do. (Or an alternative to strict version policies such as "all Node and Python should be done with current LTS, no exceptions".) There are similar tools on Linux, so the noteworthy thing about this one is it is Windows native.
- Kuinox 2y agoI do not understand the usecase for dotnet, since the dotnet SDK self select the correct version to run the project. You never need to change the version yourself. On my current machine: PS C:\Users\username> dotnet --list-sdks 7.0.408 [C:\Program Files\dotnet\sdk] 8.0.101 [C:\Program Files\dotnet\sdk] 8.0.104 [C:\Program Files\dotnet\sdk] 8.0.204 [C:\Program Files\dotnet\sdk] 8.0.300-preview.24118.4 [C:\Program Files\dotnet\sdk] IMO it's a better way to handle this sort of problem: the SDK self select which version should run, according to your project config.
- AaronFriel 2y agoFor runtimes with tooling like .NET has, it's a niche use case. At $dayjob, we have to support non-current compilers/SDKs for five different languages and runtimes where our tool will invoke (shell out, often) the CLIs for those tools. When triaging a bug report, it's great to have a version manager to use exactly the customer's version of the CLI. Likewise, we need to make sure all of our examples and templates build even if the user has an old version, and the surest way to validate that is to hide newer CLIs and tools, and to test on the range of binaries that a customer could have installed.
- deleted 2y ago[deleted]
- deleted 2y ago[deleted]
- lxe 2y agoKiller features are 1. windows support, and 2. reading .tool-versions file, meaning that you can migrate from asdf with no issues.
- aooohan 2y agoYes! Compared to asdf, vfox has made some UX improvements to make the commands more concise.
- SEXMCNIGGA24418 2y ago[dead]
- SEXMCNIGGA27825 2y ago[flagged]
- SEXMCNIGGA24807 2y ago[flagged]
- SirFatty 2y agoYes, how did you know?
- SEXMCNIGGA47555 2y ago[flagged]
- SEXMCNIGGA16300 2y ago[dead]
- SEXMCNIGGA39403 2y ago[flagged]
- SEXMCNIGGA19094 2y ago[flagged]
- SEXMCNIGGA42378 2y ago[flagged]
- SEXMCNIGGA11171 2y ago[flagged]
- SEXMCNIGGA13410 2y ago[flagged]
- SEXMCNIGGA47027 2y ago[flagged]
- SEXMCNIGGA23726 2y ago[flagged]
- SEXMCNIGGA4805 2y ago[flagged]
- SEXMCNIGGA34084 2y ago[flagged]
- SEXMCNIGGA842 2y ago[flagged]
- SEXMCNIGGA15056 2y ago[flagged]
- SEXMCNIGGA39314 2y ago[flagged]
- SEXMCNIGGA16456 2y ago[flagged]
- SEXMCNIGGA27614 2y ago[flagged]
- SEXMCNIGGA46881 2y ago[flagged]
- SEXMCNIGGA7539 2y ago[flagged]
- SEXMCNIGGA8068 2y ago[flagged]
- SEXMCNIGGA43114 2y ago[dead]
- SEXMCNIGGA44060 2y ago[dead]
- SEXMCNIGGA12876 2y ago[dead]
- SEXMCNIGGA32577 2y ago[dead]
- SEXMCNIGGA21664 2y ago[dead]
- SEXMCNIGGA48890 2y ago[dead]
- ddsgtuuuu 2y agoWhat are the benefits of this over dev containers? (I just do BE and web stuff, so maybe it's just not for my use case)
- SEXMCNIGGA37207 2y ago[dead]
- SEXMCNIGGA23434 2y ago[dead]
- SEXMCNIGGA17955 2y ago[dead]
- SEXMCNIGGA8456 2y ago[dead]
- SEXMCNIGGA35766 2y ago[dead]
- SEXMCNIGGA13481 2y ago[flagged]
- SEXMCNIGGA49135 2y ago[dead]
- SEXMCNIGGA42999 2y ago[flagged]
- SEXMCNIGGA10383 2y ago[flagged]
- SEXMCNIGGA20586 2y ago[flagged]
- SEXMCNIGGA13016 2y ago[dead]
- SEXMCNIGGA25001 2y ago[dead]
- SEXMCNIGGA33697 2y ago[dead]
- SEXMCNIGGA37272 2y ago[dead]
- SEXMCNIGGA30577 2y ago[dead]
- SEXMCNIGGA4002 2y ago[flagged]
- SEXMCNIGGA12704 2y ago[dead]
- SEXMCNIGGA39790 2y ago[dead]
- SEXMCNIGGA6632 2y ago[dead]
- 2genders29230 2y ago[dead]
- 2genders111 2y ago[dead]
- 2genders22926 2y ago[dead]
- 2genders47151 2y ago[dead]
- 2genders45975 2y ago[dead]
- 2genders1784 2y ago[dead]
- 2genders19276 2y ago[dead]
- 2genders2170 2y ago[dead]
- 2genders48585 2y ago[flagged]
- 2genders48347 2y ago[flagged]
- SEXMCNIGGA13800 2y ago[dead]
- 2genders14511 2y ago[dead]
- Onavo 2y agoThe battle of Rust versus Go https://github.com/jdx/mise https://github.com/jdx/mise
- deleted 2y ago[deleted]
- 2genders34179 2y ago[flagged]
- 2genders35117 2y ago[dead]
- 2genders12597 2y ago[dead]
- 2genders8748 2y ago[dead]
- 2genders38457 2y ago[dead]
- 2genders17675 2y ago[flagged]
- 2genders35412 2y ago[flagged]
- 2genders22571 2y ago[flagged]
- 2genders27181 2y ago[flagged]
- 2genders38534 2y ago[dead]
- 2genders11185 2y ago[dead]
- 2genders14517 2y ago[flagged]
- 2genders20141 2y ago[flagged]
- 2genders45256 2y ago[flagged]
- indianmilf41790 2y ago[dead]
- indianmilf19561 2y ago[dead]
- indianmilf3250 2y ago[dead]
- indianmilf13445 2y ago[flagged]
- indianmilf2461 2y ago[flagged]
- indianmilf47583 2y ago[flagged]
- deleted 2y ago[deleted]