Elixir
Erlang / BEAM family · 2012Actively developedFunctional programming for concurrent, fault-tolerant systems on the BEAM.
Functional · Concurrent
Links
- Homepage
- https://elixir-lang.org/
- Reference / standard
- https://hexdocs.pm/elixir/introduction.html
- Project blog
- https://elixir-lang.org/blog/
- Community forum
- https://elixirforum.com/
- Wikipedia (English)
- https://en.wikipedia.org/wiki/Elixir_(programming_language)
Tracked release
- Version
- 1.20
- Artifact
- Feature release
- Published
- 2026-06-03
- Source checked
- 2026-10-22
Use & ecosystem
- Suited for
- Embedded devices, Web backends, Distributed services
- Family / tradition
- Functional / ML / lazy, Erlang / BEAM
- Maturity
- Established
- Ecosystem breadth
- Focused
Stable releases and sustained independent service deployments support Established. The ecosystem is concentrated around BEAM applications, web services and distributed systems, so breadth is Focused.
Industry & practical use
Elixir is used for web services, real-time communication and concurrent distributed applications. Official case studies include Discord and embedded grid-management systems. Phoenix provides web tooling; Nerves supports embedded Linux systems. Embedded Linux here does not mean bare-metal microcontrollers.
Compilers, libraries & tooling
Elixir builds on Erlang/OTP and the BEAM runtime, with Mix for project tooling and Hex for packages. Its ecosystem is especially developed around services, supervision and concurrency. CPU-intensive native components need separate engineering; many lightweight processes do not make every workload computationally fast.
Platforms & deployment
- General toolchains
- Linux, Windows, macOS
- Specialized tooling
- None catalogued
- Native cross-compilation
- Not the usual deployment model
Elixir and Erlang/OTP are available on Linux, Windows and macOS. Nerves targets selected embedded Linux boards. A deployed release includes runtime components and native dependencies, so runtime portability does not imply that one release archive works on every OS.
BEAM bytecode runs through Erlang/OTP. Mix releases should be built in an environment matching the target OS and architecture; native dependencies and the bundled runtime matter. Nerves supplies a specialized cross-build workflow for its embedded Linux targets.
Project health & support
The Elixir core team maintains the language through a public development process, with a documented compatibility and security policy. The project emphasizes a stable core while frameworks extend its uses. Erlang/OTP and individual packages have their own maintainers and support lifecycles.
Use, ecosystem & platform assessment reviewed 2026-10-22 · Sources below
History & origin
José Valim created Elixir at Plataformatec, bringing an extensible functional language to the Erlang virtual machine. Its public emergence is commonly dated to 2012, following earlier development. Elixir 1.0 arrived in 2014.
- Creators
- José Valim, Plataformatec
- Origin
- 2012 — First public appearance; earlier development is noted below.
Influences & descendants
Influenced by
Influenced in this catalogue
- No linked entries yet.
Language features
- Typing
- Gradual, Dynamic
- Execution
- Bytecode VM, JIT
- Block structure
- Explicit delimiters
- Semicolons
- Optional
- Lexical closures
- Yes
- Namespaced modules
- Yes
- Pattern matching
- Yes
- Macro system
- Syntactic macros
Implementation notes
- Elixir compiles to BEAM bytecode; JIT availability depends on the Erlang/OTP runtime and platform.
- Version 1.20 adds gradual type checking while retaining dynamic execution.
- The tracked release is the announced 1.20 feature series; patch releases are not yet tracked.
Sources & references
- Language reference
- https://hexdocs.pm/elixir/introduction.html
- History and background
- https://elixir-lang.org/development/
Use, ecosystem & platform sources
- Industry case studies
- https://elixir-lang.org/cases/
- Development and ecosystem
- https://elixir-lang.org/development/
- Platforms
- https://elixir-lang.org/install/
- Release deployment
- https://mix.hexdocs.pm/Mix.Tasks.Release.html
- Embedded Linux tooling
- https://hexdocs.pm/nerves/getting-started.html
See the classification definitions for implementation-dependent features. Influence links cover the entries documented here.