3 releases

0.1.2 Oct 11, 2024
0.1.1 Jun 25, 2024
0.1.0 Jun 25, 2024

#626 in Command line utilities

Download history 25/week @ 2024-09-12 11/week @ 2024-09-19 3/week @ 2024-09-26 169/week @ 2024-10-10 5/week @ 2024-10-17

156 downloads per month

Custom license

41KB
953 lines

Multi Language Version Manager

mlvm is a command line tool that can be used to switch between versions for different languages. Drop of a ✨ if you are here. It would mean a lot : )

DEMO.webm

Features

  1. Fast, written in Rust
  2. A single binary to control versions of multiple languages, without increasing the space
  3. Secure, as it uses symlinks instead of changing env.
  4. Easy to use

Current Supported Languages

  • Node
  • Go

More languages to be added soon!

Installation

Using Cargo

You can install mlvm from Cargo directly

cargo install mlvm

Build From Source

  1. Clone this repository by running the command
git clone https://github.com/shubhexists/mlvm
  1. cd into the directory and run
cargo build --release

This will create binaries for the project.

  1. Export the path of the executable (It is in the /target/release/ directory .) For eg,
   export PATH="$PATH:/home/jerry/Desktop/mlvm/target/release"
  1. You are all set to use mlvm :)

Major Commands

  1. To install a new version
mlvm language_name install version_number

Eg.

mlvm node install 16 // installs node 16
  1. To list all the versions of a language
mlvm language_name ls
  1. To remove a version of any language
mlvm language_name remove version_number
  1. To switch between different version of a language
mlvm language_name use version_number
  1. To execute a piece of code without actaully changing the version in the shell (Work In Progress)
mlvm language_name exec version_number file_to_execute
  1. To create version aliases for a language (Work In Progress)
mlvm language_name alias add version_number alias_name

For more details about commands, and flags like --debug and --no-default, Refer to COMMANDS.md (Work In Progress).

Thanks

If you read till here, thanks for showing interest in the project :)

Dependencies

~12–24MB
~360K SLoC