fnm VS asdf

Compare fnm vs asdf and see what are their differences.


🚀 Fast and simple Node.js version manager, built in Rust (by Schniz)


Extendable version manager with support for Ruby, Node.js, Elixir, Erlang & more (by asdf-vm)
Our great sponsors
  • InfluxDB - Build time-series-based applications quickly and at scale.
  • SonarLint - Clean code begins in your IDE with SonarLint
  • SaaSHub - Software Alternatives and Reviews
fnm asdf
50 273
10,181 16,645
- 1.6%
9.3 8.3
about 12 hours ago 5 days ago
Rust Shell
GNU General Public License v3.0 only MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.


Posts with mentions or reviews of fnm. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-01-26.


Posts with mentions or reviews of asdf. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-02-01.
  • Terraform Version Manangement
    2 projects | reddit.com/r/Terraform | 1 Feb 2023
    We use asdf for managing multiple binary versions. You just add a .tool-versions file with the application and version number in the root directory and just uses that version when you're running tf. https://asdf-vm.com/
  • Show HN: Asdf Clone Written in Rust
    4 projects | news.ycombinator.com | 30 Jan 2023
    I'm on an M1 MacBook Pro 16". The performance issues are well understood by the asdf team and the Github issue with most comments is on the topic: https://github.com/asdf-vm/asdf/issues/290

    This was with a half dozen plugins and use_legacy_file disabled. Hardly an edge-case. Though I'll note in other tests it was around 200ms (which is the number I put in the README to be fair). @danfritz in this thread said his can take over 2 seconds!

    4 projects | news.ycombinator.com | 30 Jan 2023
    I think that asdf (https://asdf-vm.com) was a great idea for a project. It helps consolidate installing and running different programming languages into a similar UX. It also is built with a plugin interface that makes it easy to build support for new languages.

    However it is so slow. I was just testing `node -v` and it was taking ~900ms. That kind of overhead is completely unusable. My shell prompt uses runtimes inside of it for various things so this effectively makes every command take multiple seconds to complete.

    So I rebuilt it in Rust but using the same plugin ecosystem so it should be a drop-in replacement. I also added a couple of features that I wanted from asdf (aliases and fuzzy-matching).

    Let me know what you think! Just know that people have only been using this for a few days so if you see any bugs, they're likely not big hairy issues, just overlooked edge-cases and will be fixed soon.


  • Ask HN: Why does every package+module system become a Rube Goldberg machine?
    3 projects | news.ycombinator.com | 30 Jan 2023
    Not a generic package manager, but it's probably worth calling out asdf as the generic version manager[0] (maybe you're already aware of it, but it's a generic replacement for nvm, rvm, virtualenv, *vm, which supports any language based on plugins.)

    Again, maybe you're already aware of it, but I think it's a nice example of genericising a concern common to many languages which sounds similar to what you're asking for (albeit unfortunately in a slightly different space).

    [0] https://github.com/asdf-vm/asdf

  • Rtx: Polyglot Runtime Manager
    2 projects | news.ycombinator.com | 27 Jan 2023
    Not my project but found if while looking into the "asdf" project's performance issues ticket: https://github.com/asdf-vm/asdf/issues/290#issuecomment-1406...
  • Development Containers
    7 projects | news.ycombinator.com | 24 Jan 2023
    My coworker uses this a lot at work. Being by Microsoft that dovetails really well with the visual studio code. I find the CLI to be okay I guess for something written in JavaScript. I prefer ASDF generally[1], there's always a lot of fiddling you have to do with containers, but this is more cross platform so there's that.

    1: https://asdf-vm.com

  • Runtimes JavaScript [pt-br]
    8 projects | dev.to | 17 Jan 2023
  • Apple Unveils MacBook Pro Featuring M2 Pro and M2 Max
    5 projects | news.ycombinator.com | 17 Jan 2023
    What benefit would joining your cult bestow upon me that brew does not already?

    My brew list is intentionally very short and my faffing about desire is limited.

    Generally I use brew to pull in asdf (https://github.com/asdf-vm/asdf) to install programming languages/tooling, it works flawlessly.

    I use Pipx (https://github.com/pypa/pipx) to install python thingies (such as yt-dlp) as a cli. Go and Rust handle binaries in their languages beautifully and without issues.

  • tgenv is dead, long live tgenv!
    3 projects | reddit.com/r/devops | 16 Jan 2023
    Not sure of the differences, but I pretty much use asdf for all the version setups I need. There are plugins that support versions for both Terraform and Terragrunt as well.
  • Elixir Phoenix - Ubuntu 22 - could not compile dependency :phoenix
    2 projects | reddit.com/r/elixir | 14 Jan 2023

What are some alternatives?

When comparing fnm and asdf you can also consider the following projects:

pyenv - Simple Python version management

nvm - Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions

SDKMan - The SDKMAN! Command Line Interface

rbenv - Manage your app's Ruby environment

volta - Volta: JS Toolchains as Code. ⚡

HomeBrew - 🍺 The missing package manager for macOS (or Linux)

nvm for Windows - A node.js version management utility for Windows. Ironically written in Go.

jenv - Manage your Java environment

n - Node version management