BEAMup - a new way to install Elixir, Erlang, Gleam, and more components to come

First announced on the Erlang Forum, BEAMup is a tool for installing a managing the active instance of BEAM languages. It has support for Erlang, Elixir and Gleam on Linux, Mac and Windows – probably works on BSD if built from source?

Things that works (ok, “work”, I actually need to add tests too!):

  • Build Erlang from a Github releases
  • Install Elixir and Gleam from a binary release
  • Install Erlang from a binary release on Windows
  • Set global default of Elixir, Erlang and Gleam to use
  • Set a per-directory version of Elixir, Erlang or Gleam to use

Future plans include:

  • Binary install of Erlang on Mac and Linux
  • Source installation for Elixir and Gleam
  • Building from source based on a git branch (or really any git reference) instead of just GitHub releases
  • BEAMUp binaries for Linux ARM
  • Component installation for things like rebar3 (I guess you have mix for that already :slight_smile: and language servers
  • Checks that the Elixir install you are running is compatible with the Erlang version that is active.

It is still in the early stages so some commands are still missing.

I’ll end with a question, if you have any thoughts on support for installing builds for other hosts let me know on this issue, Support “cross-compilation” of Releases? · Issue #16 · tsloughter/beamup · GitHub. I thought this might be useful for embedded folks.

14 Likes

This is great and I am sure it will find its audience!

For those of us who use asdf or mise, what is beamup doing better than them?

2 Likes

Good question! I don’t believe asdf and mise for Erlang work on Windows. Support for binary installs is unique too, I think. Plus, the eventual support for components – though maybe mise that could be added too, I know I use it for Go and install stuff for Go through it.

Not an answer but I’ll note that beamup has a long lineage going back over a decade. Starting with erln8 and then erlup when erln8 became unmaintained.

Its existence really boils down to that many years ago I wanted an Erlang installer that used links instead of environment variables like kerl and I wanted to learn Rust. Then when the name beamup came up I had to pounce on that, haha, and add support for other languages. Support for Windows came because it felt like something missing and could help the community and make this a viable tool to be promoted by Gleam.

I know where asdf and mise are for sure better: they are tested and mise has better Rust code :slight_smile:

3 Likes

Ah, that by itself is a very strong reason. Thanks for following up.

Sorry, what kind of components do you mean? The only association that springs to mind is rustup’s component subcommand where you can e.g. add source code to an existing Rust installation, or extra compiler tooling f.ex. WASM support.

1 Like

I mean like rustup’s support for compnents like the LSP server, but also tools like rebar3 – not useful to Elixir users since this is done by mix already. The first I plan to add are rebar3 and the Erlang langauge server ELP.

1 Like

Ah, nice, that’s what I thought. That’s actually great and is valuable. Looking forward to play with it when you finish it. Thanks!

vfox is a cross platform version manager.

2 Likes

Thank you, I’m looking forward to trying it on FreeBSD as I can’t install Erlang 27 via asdf.

Cool, let me know if it works!