| Gleam | |
|---|---|
| Lucy, the starfish mascot for Gleam [1] | |
| Paradigm | Multi-paradigm: functional, concurrent [2] |
| Designed by | Louis Pilfold |
| Developer | Louis Pilfold |
| First appeared | June 13, 2016 |
| Stable release | |
| Typing discipline | Type-safe, static, inferred [2] |
| Memory management | Garbage collected |
| Implementation language | Rust |
| OS | FreeBSD, Linux, macOS, OpenBSD, Windows [4] |
| License | Apache License 2.0 [5] |
| Filename extensions | .gleam |
| Website | gleam |
| Influenced by | |
| [6] | |
Gleam is a general-purpose, concurrent, functional, high-level programming language that compiles to Erlang or JavaScript source code. [2] [7] [8]
Gleam is a statically-typed language, [9] which is different from the most popular languages that run on Erlang’s virtual machine BEAM, Erlang and Elixir. Gleam has its own type-safe implementation of OTP, Erlang's actor framework. [10] Packages are provided using the Hex package manager, and an index for finding packages written for Gleam is available. [11]
Gleam was originally created in 2017 by Louis Pilfold for a conference talk. It was later redesigned and adapted into what it is today. [6]
The first numbered version of Gleam was released on April 15, 2019. [12] Compiling to JavaScript was introduced with version v0.16. [13]
In 2023 the Erlang Ecosystem Foundation funded the creation of a course for learning Gleam on the learning platform Exercism. [14]
Version v1.0.0 was released on March 4, 2024. [15]
In April 2025, Thoughtworks added Gleam to its Technology Radar in the Assess ring (languages & frameworks worth exploring). [16]
Gleam has seen some adoption in recent years. [17] According to a blog post, the language creators have placed strong emphasis on developer experience (DX), which has contributed to its appeal. [18] [ better source needed ]
Although it compiles to run on the BEAM virtual machine, most new Gleam users do not have a background in Erlang nor Elixir, two older BEAM languages. [19] In 2025, Louis Pilfold reported on results from the 2024 developer survey, which received 841 responses. [19] Pilfold concluded that Gleam developers "overwhelmingly come from other ecosystems other than Erlang and Elixir". [19] The core team also reported on Gleam's efforts to expand the BEAM ecosystem in a keynote talk at Code BEAM Europe 2024. [20]
Developers have cited Gleam’s simplicity, static typing, and user-friendly tooling as reasons for adoption. [21] The developer behind Nestful described their motivations for rewriting the project in Gleam as driven by its clarity and ease of use. [22] There is a community-maintained list of companies using Gleam in production. [23]
In 2025, Gleam appeared for the first time in the Stack Overflow Developer Survey, where it was the 2nd "most admired" language, with 70% of users currently using the language wanting to continue working with it. [17] 1.1% of developer respondents reported doing "extensive development work" in the language over the past year. [17]
Gleam includes the following features. [8] [24]
A "Hello, World!" example:
importgleam/iopubfnmain(){io.println("hello, world!")}Gleam supports tail call optimization: [25]
pubfnfactorial(x:Int)->Int{// The public function calls the private tail recursive functionfactorial_loop(x,1)}fnfactorial_loop(x:Int,accumulator:Int)->Int{casex{1->accumulator// The last thing this function does is call itself_->factorial_loop(x-1,accumulator*x)}}Gleam's toolchain is implemented in the Rust programming language. [26] The toolchain is a single native binary executable which contains the compiler, build tool, package manager, source code formatter, and language server.[ citation needed ] A WebAssembly binary containing the Gleam compiler is also available, enabling Gleam code to be compiled within a web browser. [27] This is used in Gleam's interactive language tour [28] and online playground. [29]