Asdf – the language tool version manager

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • SonarQube - Static code analysis for 29 languages.
  • InfluxDB - Build time-series-based applications quickly and at scale.
  • SaaSHub - Software Alternatives and Reviews
  • asdf

    Extendable version manager with support for Ruby, Node.js, Elixir, Erlang & more

    I have an issue out to make it agnostic of keyboard layouts if that helps! https://github.com/asdf-vm/asdf/issues/930

  • asdf-java

    A Java plugin for asdf-vm.

  • SonarQube

    Static code analysis for 29 languages.. Your projects are multi-language. So is SonarQube analysis. Find Bugs, Vulnerabilities, Security Hotspots, and Code Smells so you can release quality code every time. Get started analyzing your projects today for free.

  • terraform-switcher

    A command line tool to switch between different versions of terraform (install with homebrew and more)

    tfswitch might help with particular issue of terraform versioning:

    https://tfswitch.warrensbox.com/

    Even then some versions of terraform providers are not compatible with M1 macs. Docker would help with that probably, but so can: https://github.com/kreuzwerker/m1-terraform-provider-helper

    Perhaps these sort of issues support the benefits of per-module docker images?

  • m1-terraform-provider-helper

    CLI to support with downloading and compiling terraform providers for Mac with M1 chip

    tfswitch might help with particular issue of terraform versioning:

    https://tfswitch.warrensbox.com/

    Even then some versions of terraform providers are not compatible with M1 macs. Docker would help with that probably, but so can: https://github.com/kreuzwerker/m1-terraform-provider-helper

    Perhaps these sort of issues support the benefits of per-module docker images?

  • terraform

    Terraform enables you to safely and predictably create, change, and improve infrastructure. It is an open source tool that codifies APIs into declarative configuration files that can be shared amongst team members, treated as code, edited, reviewed, and versioned.

  • asdf-python

    Python plugin for the asdf version manager

    Yeah, I should've been more precise. The asdf plugins use parts of existing systems. For example (python/ruby/node)-build which mostly come from other version managers. Asdf does provide extras, but the plugin-specific code is tiny: https://github.com/asdf-community/asdf-python/blob/master/bi...

  • bin

    Effortless binary manager

    Downside: it's all shell scripts. Upside: it's all shell scripts.

    Seriously through, it's pretty easy to create an asdf plugin, and it works great. But it would be great if there were a static executable to handle it all.

    A couple projects out there come close, but need people to contribute code to finish the most useful functionality. One example is https://github.com/marcosnils/bin - the developer is fully in favor of improvements and added features, but needs someone with the free time to add them.

  • InfluxDB

    Build time-series-based applications quickly and at scale.. InfluxDB is the Time Series Platform where developers build real-time applications for analytics, IoT and cloud-native services. Easy to start, it is available in the cloud or on-premises.

  • nix-cde

    Nix Common Development Environment

    I don't use NixOS myself, but have Nix installed on my Mac, and it seems to provide all functionality of package or version managers I needed.

    I think though it is more complex because it is a programming language that provides this functionality instead of purpose build tool like asdf.

    For my needs I created a framework for development: https://github.com/takeda/nix-cde to avoid cruft of including the same things over and over in my projects.

  • nixml

    NIX + YAML for easy to use reproducible environments

    Some people are doing these kind of wrappers, for example: https://github.com/luispedro/nixml

    Machine learning people usually use anaconda which is all sorts of mess... But honestly yeah, I think it's worthwhile to invest learning nix for simply guaranteeing your environment still works for years to come and isn't affected by side-effects (some package outside of your environment description actually is causing the thing to work, or some thing outside the environment is making the thing not work).

  • tldr

    📚 Collaborative cheatsheets for console commands

  • fnm

    🚀 Fast and simple Node.js version manager, built in Rust

    This looks really promising. I love seeing these tools written in languages other than the thing they're targeting.

    As an example I use fnm (https://github.com/Schniz/fnm) for managing JavaScript versions. It runs so fast (compared to nvm) I'm inclined to think something went wrong and it silently failed, but it never does!

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts