Mlvm
A multi-language version manager written in Rust similar to what nvm is for node, that currently supports NodeJS
Install / Use
/learn @shubhexists/MlvmREADME
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 : )
Features
- Fast, written in Rust
- A single binary to control versions of multiple languages, without increasing the space
- Secure, as it uses symlinks instead of changing env.
- Easy to use
Current Supported Languages
- [x] Node
- [ ] Go
More languages to be added soon!
Installation
Using Cargo
You can install mlvm from Cargo directly
cargo install mlvm
Build From Source
- Clone this repository by running the command
git clone https://github.com/shubhexists/mlvm
cdinto the directory and run
cargo build --release
This will create binaries for the project.
- Export the path of the executable (It is in the
/target/release/directory .) For eg,
export PATH="$PATH:/home/jerry/Desktop/mlvm/target/release"
- You are all set to use mlvm :)
Major Commands
- To install a new version
mlvm language_name install version_number
Eg.
mlvm node install 16 // installs node 16
- To list all the versions of a language
mlvm language_name ls
- To remove a version of any language
mlvm language_name remove version_number
- To switch between different version of a language
mlvm language_name use version_number
- 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
- 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 :)
Related Skills
himalaya
351.2kCLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).
taskflow
351.2kname: taskflow description: Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layer
coding-agent
351.2kDelegate coding tasks to Codex, Claude Code, or Pi agents via background process
tavily
351.2kTavily web search, content extraction, and research tools.
