An alternative BEAM implementation, designed for WebAssembly

View the Project on GitHub lumen/lumen

Welcome to Lumen

Lumen is a project to make a compiler for Erlang/Elixir and other BEAM languages that can be compiled to different environments rather than run on a virtual machine. This should allow some interesting things:

The Lumen project treats the current implementation of the BEAM as a kind of living standard to follow and aims to remain compatible where it makes sense. There are also some compromises made that allow for very strong optimizations. So the Lumen compiler does not attempt to retain the capacity for hot code updates which allows the compiler to eliminate unused parts of the standard libraries and make smaller binaries.

As announced on ElixirConf US 2020 we have the first public releases of the project that we are excited for the tinkering public to try!

Download releases

Fair warning: Lumen is still an early stages project.

The current Lumen releases are available here. Download the right version for your environment and get cooking. Windows releases are coming but might not be there at this stage.


Update up to 2021-03-03 - 3 March 2021

Luke provides us with some context here for a lot of changes as we bring Lumen up a more recent Rust nightly.

Read more

Update up to 2021-02-02 - 2 February 2021

Updates have been a little sparse here as most of the Lumen team is occupied elsewhere. This is a brief update on some of the changes since last time. Everyone has been a bit busy after the holidays and in the start of the year. While you wait for things to pick up and move again we recommend taking a listen to the podcast Elixir Wizards that recently featured Brian Cardarella where they touch on some of the Lumen stuff towards the end.

Read more

Brian Cardarella visits the Elixir Wizards - 2 February 2021

Lumen’s own Brian Cardarella joins the Elixir Wizards for an episode on adopting Elixir. If you want to understand the business case of Elixir or know about the path DockYard took through Rails & Ember to end up in Elixir land it covers that very well. It does also get into some of what Lumen is, can be and Brian’s thoughts on what the project could be useful for and how far along we are. So open your podcatcher and give it a whirl.

Read more

Partial update up to 2021-01-05 - 5 January 2021

This covers some of the work on the Lumen project. Returning from the holidays has us all a bit scattered. So while we haven’t summarized all the work we’ll put out what information we have for now.

Read more

Weekly update up to 2020-11-11 - 11 November 2020

Not much changed in terms of code pushed to GitHub this week, other than updating our LLVM repo to pick up a large swath of recent changes. Those changes will be released as part of an overall Lumen release in the next week or so, we’re waiting on a couple other things before doing so: nightly Rust picking up the ability to parameterize standard library types with an allocator, and a set of changes by Paul to move a bunch of our C++ code into Rust now that there is enough FFI support to do most common actions in MLIR without needing to write C++ bindings.

Read more

Weekly update up to 2020-10-28 - 28 October 2020

This week the compiler saw a significant number of fixes and improvements, and the build system was consolidated under cargo make in an effort to make it easier to use, more consistent, and rely less on platform-specific functionality.

Read more

Podcast: Luke speaks to Elixir Mix - 28 October 2020

Luke Imhoff of the Lumen team recently joined the Elixir Mix hosts to talk about Lumen. He ended up sharing insights into the process of evolving WASM and making sure it doesn’t end up exclusively suited to Object-Oriented Programming as well as covering a lot of what Lumen is, isn’t and can be. It could have been titled “Sneaking Elixir into the enterprise”!

Read more

Weekly update up to 2020-10-20 - 20 October 2020

A brief update this week.

Read more

Update up to 2020-10-13 - 13 October 2020

The latest updates for the last two weeks of work.

Read more

Weekly update up to 2020-09-29 - 29 September 2020

A shorter update as we experiment with settling into a schedule of weekly updates on what is happening in the Lumen project.

Read more

The first regular update - 23 September 2020

As Lumen has had its first release we aim to keep everyone following the project posted on what’s new. This is a summary and some detail on what has happened since the Lumen release. We are likely to make a new release within a week or so, it will depend on when some changes land but that’s the idea. Until then we hope you enjoy following along.

Read more

First release @ ElixirConf 2020 - 3 September 2020

Luke Imhoff spoke remotely to the very virtual ElixirConf and updated the community on the progress of the project along with giving an overview of what it is and does. The video from this talk will be added to this post when it becomes available to the general public. If you attended ElixirConf you can get the video from the conference event site.

Read more

Lumen at Lonestar Elixir 2020 - 8 May 2020

Luke spoke about Lumen during the 2020 iteration of Lonestar Elixir.

Read more

Lumen on the Elixir Wizards podcast - 6 February 2020

Hans Elias Josephsen and Paul Schoenfelder spent some time on the Elixir Wizards podcast to speak about Lumen.

Read more

Lumen at Code Mesh LDN 19 - 12 December 2019

Paul spoke about Lumen, BEAM and Web Assembly at the 2019 Code Mesh conference in London.

Read more

The Lumen team on Elixir Talk - 9 October 2019

The entire Lumen team were on the Elixir Talk podcast, listen below.

Read more

Lumen announced! (ElixirConf 2019) - 29 August 2019

During ElixirConf 2019 the Lumen project was announced by Brian Cardarella, Luke Imhoff and Paul Schoenfelder.

Read more