https://github.com/shubhexists/mlvm
A multi-language version manager written in Rust similar to what nvm is for node, that currently supports NodeJS
https://github.com/shubhexists/mlvm
developer-tools nvm rust version-manager versions
Last synced: 7 months ago
JSON representation
A multi-language version manager written in Rust similar to what nvm is for node, that currently supports NodeJS
- Host: GitHub
- URL: https://github.com/shubhexists/mlvm
- Owner: shubhexists
- License: mit
- Created: 2024-05-24T21:45:38.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-10-08T19:21:41.000Z (over 1 year ago)
- Last Synced: 2025-06-30T06:06:20.094Z (8 months ago)
- Topics: developer-tools, nvm, rust, version-manager, versions
- Language: Rust
- Homepage:
- Size: 148 KB
- Stars: 16
- Watchers: 1
- Forks: 0
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# 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](https://github.com/shubhexists/mlvm/assets/110319892/b5a0b3f4-6cb3-4ce4-9635-a31b3f93aa04)
# 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
- [x] Node
- [ ] Go
More languages to be added soon!
# Installation
## Using Cargo
You can install mlvm from [Cargo](https://crates.io/crates/mlvm) directly
```
cargo install mlvm
```
## Build From Source
1) Clone this repository by running the command
```
git clone https://github.com/shubhexists/mlvm
```
2) `cd` into the directory and run
```
cargo build --release
```
This will create binaries for the project.
3) Export the path of the executable (It is in the `/target/release/` directory .) For eg,
```
export PATH="$PATH:/home/jerry/Desktop/mlvm/target/release"
```
4) 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
```
2) To list all the versions of a language
```
mlvm language_name ls
```
3) To remove a version of any language
```
mlvm language_name remove version_number
```
4) To switch between different version of a language
```
mlvm language_name use version_number
```
5) 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
```
6) 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 :)