edit: rtx was renamed to mise.
I think mise nails the developer experience with managing runtime versions and you likely have not heard of it yet.
This screenshot alone has a few strong reasons why you should be using mise:
- With Node, mise interops already with .nvmrc files.
- You don’t have to preinstall Node, when you switch into a project that has a different Node version and you run a Node command mise will do the job of installing that version for you.
- Switching out of the directory will change the version back to your default.
- It’s super fast. Nvm would not have taken 7 seconds to install Node 18.19.0
- All of the above is true for a very large list of packages which include Ruby, Java, Python, Bun, Deno, and Go. See full list here.
Now if you like me, working with React Native and needing to manage runtime dependencies for Java, Node, Python, and Ruby. mise is exactly what we want.
And that’s not it, the author of mise, Jeff Dickey (@jdxcode), wrote about 10 other features we missed which includes task runners and direnv like functionality to load and unload env variables per directory.
Oh did I also mention it’s written in Rust? so it is Blazingly Fast 😍
Edit 01/01/2024: Jeff Dickey mentioned they support a pretty large list of packages.