Skip to content

toodofun/gvm

GVM (Global Version Manager)

GVM is a programming language version manager, like `nvm`, but extensible to support all programming languages.

Workflow ci Go Report Card release Docker Pulls GitHub License GitHub go.mod Go version GitHub Downloads (all assets, all releases) Test Coverage

InstallationFeaturesLanguagesQuick-StartLicense

English | 简体中文

A tool to manage multiple versions of programming languages.

Usage:
  gvm [command]

Available Commands:
  completion  Generate the autocompletion script for the specified shell
  current     Show Current version of a language
  help        Help about any command
  install     Install a specific version of a language
  ls          List installed versions of language
  ls-remote   List remote versions of language
  ui          Run in the terminal UI
  uninstall   Uninstall a specific version of a language
  use         Set default versions of language

Flags:
  -d, --debug   debug mode
  -h, --help    help for gvm

Use "gvm [command] --help" for more information about a command.

🤘  Features

  • Manage multiple versions of various programming languages (e.g., Go, Node, Java, etc.; more coming soon)
  • Easy installation, uninstallation, and switching between language versions
  • List both locally installed and remotely available versions for each language
  • Operate via both Command Line Interface (CLI) and Terminal User Interface (TUI)
  • Set default versions for each language
  • Shell autocompletion for faster command input
  • Cross-platform support, with Docker images and binary releases
  • Extensible architecture—easy to add support for new languages

🐍  Supported Programming Languages

  • Golang
  • Node
  • Java
  • Python (test)
  • C#
  • C++/C
  • Ruby
  • Rust

🌈  Screenshots

usage

🐳  Docker Container

Release

docker pull toodo/gvm
docker run -it -e TERM=xterm toodo/gvm ui

🔔 Note: The above example runs the gvm ui command in an interactive terminal. To run gvm against other compatible servers, or to enter the container interactively for debugging or inspection, use:

docker run -it --entrypoint=/bin/sh toodo/gvm

📦  Installation

📁 From Binary

Download the appropriate version for your platform from the releases page.

🛠️ From Source

  • compile glctl and place it in _output/
git clone https://github.com/toodofun/gvm.git
cd gvm
make build

🚀  Quick Start

📄 Usage

gvm <command> [flags]
  • Run terminal UI
 gvm ui

🥪 Available Commands

  • Command Line Interface (CLI)
  • ls-remote <lang>: List remote versions of a language
  • ls <lang>: List installed versions of a language
  • install <lang> <version>: Install a specific version of a language
  • uninstall <lang> <version>: Uninstall a specific version of a language
  • use <lang> <version>: Set the default version of a language
  • current <lang>: Show the current version of a language
  • Terminal User Interface (TUI)
    • ui: Run in terminal interface

💕 Acknowledgements

Grateful acknowledgement to JetBrains for supporting this project through their Open Source License Program and providing exceptional development tools.

🧠 TODOs

  • This cli tool is still in the development stage, and most of the programming languages are not completed. Everyone contribute is very much needed. 🙋‍♂️

🤝 Issues

If you have an issue: report it on the issue tracker

🧑‍💻 Contributing

Contributions are always welcome. For more information, check out the contributing guide

💕  Star History

Star History Chart

📘  License

Licensed under the Apache License 2.0. See LICENSE for details.