Skip to content
/ gvm Public
forked from toodofun/gvm

A programming language version manager, like `nvm`, but extensible to support all programming languages 🚀

License

Notifications You must be signed in to change notification settings

huhouhua/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:
  add          Add a new addon to the GVM
  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
  set-language Set default application language, supported languages: en, zh
  ui           Run in the terminal UI
  uninstall    Uninstall a specific version of a language
  use          Set default versions of language
  version      Print version information

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 (zulu)
  • Python
  • 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.

About

A programming language version manager, like `nvm`, but extensible to support all programming languages 🚀

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 95.4%
  • Makefile 2.4%
  • Shell 1.8%
  • Other 0.4%