Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Elixir
  3. lumen

lumen

Apache-2.0Rust

A compiler and runtime for BEAM languages (Erlang/Elixir) that targets WebAssembly and produces standalone executables.

GitHubGitHub
3.6k stars110 forks0 contributors

What is lumen?

Firefly is a compiler and runtime for BEAM languages like Erlang and Elixir, designed to produce standalone native executables and target WebAssembly. It solves the problem of deploying BEAM applications in environments where the full Erlang VM is impractical, such as web browsers or resource-constrained systems, by offering ahead-of-time compilation and static binaries.

Target Audience

Erlang and Elixir developers who need to deploy applications as self-contained executables, target WebAssembly for frontend or embedded use, or explore an alternative BEAM implementation written in Rust.

Value Proposition

Developers choose Firefly for its ability to compile BEAM languages to WebAssembly and native binaries, its modern Rust implementation, and its focus on deployment simplicity—offering a drop-in replacement for OTP applications that don't require dynamic code loading or hot upgrades.

Overview

An alternative BEAM implementation, designed for WebAssembly

Use Cases

Best For

  • Compiling Elixir applications to run in WebAssembly environments like browsers
  • Creating standalone executables from Erlang/OTP projects for easier deployment
  • Exploring BEAM runtime internals through a Rust-based implementation
  • Targeting embedded systems with BEAM languages via native AOT compilation
  • Building CLI tools in Elixir or Erlang that distribute as single binaries
  • Experimenting with alternative BEAM implementations for educational purposes

Not Ideal For

  • Applications requiring live hot code upgrades and dynamic module loading
  • Teams needing seamless integration with BEAM dependency managers like Mix or Rebar3
  • Production systems demanding battle-tested stability and full OTP compatibility
  • Environments where quick, out-of-the-box setup is critical

Pros & Cons

Pros

Standalone Native Executables

Compiles Erlang/OTP applications to self-contained binaries for platforms like x86 and ARM, simplifying deployment without a full VM. The README shows examples producing executables that run like OTP releases.

First-Class WebAssembly Target

Enables running BEAM languages on the web and in WASM environments, supporting use cases like frontend development with Elixir. The README cites this as a primary motivator and goal.

OTP Feature Parity

Aims for compatibility with mainline OTP and integration with BEAM tooling, allowing drop-in replacement for many applications. The README lists 'feature parity with mainline OTP' as a goal.

Rust Implementation for Safety

Written in Rust to provide memory safety and serve as an educational resource on BEAM internals. The README states it's implemented in Rust 'for safety and as an educational resource'.

Cons

No Hot Code Reloading

Explicitly lists support for hot upgrades and dynamic code loading as non-goals, sacrificing these BEAM features for ahead-of-time optimizations. This limits use in systems requiring live updates.

Complex Experimental Setup

Requires specific Rust nightly versions, manual LLVM installation, and environment variable configurations, with the README noting installation is a 'placeholder' and building involves 'very experimental' steps.

Limited Tooling Integration

Lacks dependency management and shims for Rebar/Mix, forcing manual compilation of dependencies. The README admits 'Firefly does not do any dependency management itself' and integration is pending.

Unstable and Incomplete

Described as 'very experimental' with stability not guaranteed, and some functionality like NIF support is incomplete or on the roadmap. The README warns that 'the current implementation may lack functionality'.

Frequently Asked Questions

Quick Stats

Stars3,585
Forks110
Contributors0
Open Issues44
Last commit2 years ago
CreatedSince 2018

Tags

#hacktoberfest#lumen#elixir#compiler#webassembly#aot-compilation#web-assembly#native-executable#virtual-machine#erlang-vm#erlang#runtime#beam#rust

Built With

L
LLVM
W
WebAssembly
R
Rust

Included in

Elixir13.1k
Auto-fetched 15 hours ago

Related Projects

wasmexwasmex

Execute WebAssembly from Elixir

Stars691
Forks44
Last commit4 months ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub