Skip to content
SPECIFICTION
Get listed

fnm vs GVM

fnm

github.com

GVM

github.com

Side by side

FigurefnmGVM
Price fromFreeFree
Free planYesYes
Free trial——
Open source——
WindowsYes—
macOSYesYes
LinuxYesYes
Plans published11
Spec score · Runtime Version Managers7.9 (#8)7.7 (#11)
Spec score · Development Environment Managers7.8 (#21)7.7 (#25)
LicenseThe repository identifies its license as GPL-3.0.The repository includes an MIT license granting permission to use, copy, modify, distribute, sublicense, and sell copies of the software subject to its conditions.
Purposefnm is a fast and simple Node.js version manager built in Rust.GVM provides an interface to manage Go versions.

Plans

fnm

  • fnmFree

fnm pricing →

GVM

  • gvmFree

GVM pricing →

In their own words

fnm

fnm is a free Node.js version manager built in Rust for developers working from a command line or shell. It runs on macOS, Windows, and Linux, and is distributed as a single file through installation scripts, package managers, Cargo, or release binaries. It reads `.node-version` and `.nvmrc` files, so projects can specify a Node.js version. Shell setup can also enable automatic version switching when changing directories. The project provides setup instructions for Bash, Zsh, Fish, PowerShell, Windows Command Prompt, and Cmder. Its binary includes completions for Bash, Zsh, Fish, and PowerShell. On macOS and Linux, the installation script requires `curl` and `unzip`. The repository identifies the license as GPL-3.0 and invites pull requests, with issues available for project interaction. No paid plans are listed. The project page reports no published security advisories, while also noting that it has not set up a SECURITY.md file.

Visit github.com

GVM

GVM is a free tool for managing Go versions on Linux and macOS. It installs and removes versions by tag, including releases and the tip version; `gvm listall` shows available release tags and can include weekly builds. Install options allow a source or name to be selected, along with settings for protobufs, build tools, and whether binaries are preferred or required. The `gvm diff` command reports files added to or removed from GOROOT. GVM also manages GOPATH package sets, including sets kept local to a repository, and can link project directories into GOPATH. Package sets can use their own native code and dependencies through an overlay prefix and related environment variables. The project supports version pinning, lockfiles, automatic switching, shell integration, and CI/CD use. Installation requires Bison; platform instructions also list tools such as Git, Mercurial, Make, and GCC. Compiling Go 1.5 or later requires an existing Go installation for bootstrapping, with Go 1.4 offered as an example. The repository includes an MIT license.

Visit github.com