/vfox

A cross-platform and extendable version manager with support for Java, Node.js, Flutter, .Net & more

Primary LanguageGoApache License 2.0Apache-2.0

Logo

VersionFox

Go Report Card GitHub License GitHub Release Discord

[English] [中文文档]

Introduction

VersionFox is a cross-platform tool for managing SDK versions. It allows you to quickly install and switch between different versions of SDKs using the command line. SDKs are provided as plugins in the form of Lua scripts. This means you can implement your own SDK sources or use plugins shared by others to install SDKs. It all depends on your imagination. ;)

Why use VersionFox?

  • cross-platform support (Windows, Linux, macOS)
  • single CLI for multiple languages
  • consistent commands to manage all your languages
  • support GlobalProjectSession scopes when switching versions
  • simple plugin system to add support for your language of choice
  • automatically switches runtime versions as you traverse your project
  • shell completion available for common shells (Bash, Zsh, Powershell)
  • it's faster than asdf-vm, and offers more simple commands and genuine cross-platform unification. see What-is-the-difference-with-asdf?

Demo

asciicast

Quickstart

Install VersionFox (For detailed installation see Installation)

$ brew tap version-fox/tap
$ brew install vfox

⚠️ Hook VersionFox into your shell (pick one that works for your shell) ⚠️

echo 'eval "$(vfox activate bash)"' >> ~/.bashrc
echo 'eval "$(vfox activate zsh)"' >> ~/.zshrc
echo 'vfox activate fish | source' >> ~/.config/fish/config.fish

# For PowerShell, add the following line to your $PROFILE:
Invoke-Expression "$(vfox activate pwsh)"

Add an SDK plugin (For detailed usage see Getting Started)

NOTE: if you don’t know which plugins to add, you can use the vfox available command to check all available plugins

$ vfox add nodejs/nodejs

Install an SDK version

$ vfox install nodejs@21.5.0

Use the installed SDK version

$ vfox use nodejs@21.5.0
$ node -v
21.5.0

Documentation

For more information, read the Wiki.

Supported Plugins

If you have installed vfox, you can view all available plugins with the vfox available command.

plugins

For more details, see the version-fox-plugins

FAQ

1.Switch xxx not work or the vfox use command does not work ?

If your shell prompt Warning: The current shell lacks hook support or configuration. It has switched to global scope automatically that means you do not hook vfox into your shell, please hook it manually first.

See issue#35

Contributors

Thanks to following people who contributed to this project. 🎉🎉🙏🙏

Contributing

Bug reports, contributions and forks are welcome. All bugs or other forms of discussion happen on issues.

See more at CONTRIBUTING.md.

Plugin Contributions, please go to version-fox-plugins.

Star History

Star History Chart

COPYRIGHT

Apache 2.0 license - Copyright (C) 2024 Han Li and contributors