I've found myself juggling multiple versions of wasmtime so I wrote a wasmtime version manager (wvm). I tried to incorporate my favorite features from other version managers like uv, nvm, gvm, sdkman, etc and added a couple of unique ones.
A notable design feature is that it's written mostly as a WebAssembly component. There is a small native shim but the first thing it does is downloads an initial wasmtime runtime, uses that to install wvm and then registers that as an initial immutable runtime. Why? because webassembly is awesome and why not?
The unique feature that I added was a way to register applications with wvm so you can track if a version is being used or if it's safe to remove it. It doesn't couple wvm to the application so they're still independent. It also tracks usage.
I hope others find it useful. Any feedback is appreciated. Thank you to everyone that has made WebAssembly an amazing technology to work with.
https://github.com/tegmentum/wvm
Last updated: Jul 29 2026 at 05:03 UTC