Skip to content

A multi-language version manager written in Rust similar to what nvm is for node, that currently supports NodeJS

License

Notifications You must be signed in to change notification settings

shubhexists/mlvm

Repository files navigation

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 : )

Screencast.from.25-06-24.01.49.22.PM.IST.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 :)

About

A multi-language version manager written in Rust similar to what nvm is for node, that currently supports NodeJS

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published