HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
gleam-lang
otp
Gleam2020–2025
gleam-lang / otp

otp

📫 Fault tolerant multicore programs with actors

14Distinct people
17Mentions
0Explicit recommenders
881GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

📫 Fault tolerant multicore programs with actors

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year17 dated mentions

Observed mentions: 2020-04-18 02:57:24 UTC to 2025-12-13 18:39:58 UTC.

024682020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments20202021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments20222023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 8 mentions; 1 submissions, 7 comments2025

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC303
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC202
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC000
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC202
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC202
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC817

What Hacker News says

17 sources
> For those that don't know its also built upon OTP, the erlang vm This isn't correct. It can compile to run on the BEAM: that is the Erlang VM. OTP isn't the Erlang VM; rather, "OTP is set of Erlang libraries and design principles providing middle-ware to develop [concurrent/distributed/fault tolerant] systems." Gleam itself provides what I believe is a substantial subset of OTP support via a library: https://github.com/gleam-lang/otp Importantly: "Gleam has its own version of OTP which is type safe, but has a smaller feature set. [vs. Elixir, another BEAM language with OTP support]"
In I tried Gleam for Advent of Code
I thought so too, although treating everything as data and functions is really nice [1]. Regarding the BEAM and why Gleam has a separate library for actors: [2] > "One notable difference between Elixir and Gleam is that Elixir gets to just re-use the OTP code as-is (with some Elixir wrappers on top for convenience). Gleam concluded that the OTP is built expecting dynamic types, and that for best results in Gleam they'd need to re-implement the key primitives. That's why the example shown is an "Actor" not a GenServer - it serves the same purpose, and might even fit in a Supervision tree, but isn't actually a GenServer." There's a brief snippet mentioning this in the Gleam OTP readme as well: [3] > "Actors do not yet support all OTP system messages, so some of the OTP debugging APIs may not be fully functional." [1] https://mckayla.blog/po
Read the rest
In My first impressions of Gleam
I'm not fully qualified but in a nutshell, Gleam doesn't support OTP out of the box. There is a separate package for it [0] but it doesn't offer everything, so it depends on your needs. If you're going to be doing heavy OTP stuff you'll need to stick with Elixir. If you want to transpile to JS, then Gleam is the better choice. Otherwise it's up to your tastes around type systems and syntax. [0] https://github.com/gleam-lang/otp
In Gleam v1.9
We have a fully type safe and Erlang compatible OTP library! It is used in production today. https://github.com/gleam-lang/otp It is not a wrapper around gen_server etc, but instead it is a full implementation from the ground up using a very small Erlang core (~200 lines). This was done because: a) Erlang OTP cannot be typed, we need different abstractions are designed with types in mind b) We want to be confident that our abstractions are powerful enough to build something like OTP, rather than cheating by relying on type casts. I'm very happy with how Gleam OTP is going, but it is not the focus now that an initial version is out. Tooling and documentation is more important at the moment.
In Gleam 0.15
> 1. Can multiline strings be indented, with the indentation stripped out? Not at present, though this would be a nice feature to have. Perhaps open an issue on the issue tracker if you have ideas for syntax or behaviour. > 2. Why do floats have their own operators? Gleam's functions and operators are monomorphic- they take precisely 1 datatype. There is no overloading, interfaces or type classes which would be used to have operators work on Ints and Floats but no other type. We may support this kind of polymorphism later, though we want to ensure the design is right rather than rushing to any particular solution. > 3. What's the rationale for lists and tuples being different, and not just allowing lists to include different types? Type safe lists of arbitrary lengths that contain multiple types are difficult to work with, typically a sin
Read the rest
gle type is much easier to work with and covers the vast majority of use cases. If you wish to store multiple types in a list you would wrap them in a custom type (a tagged union) which would give the programmer an easy way to defferentiate between the different values in the list. > 4. How are module paths resolved? There is a global module namespace. The `src` and `test` directories are considered the root of the namespace, and the file path relative to there dictates the module path. Some more info can be found here: https://gleam.run/tour/modules.html > 5. Pattern matching looks great! Thank you! It's one of Erlang's best features. > 6. Function argument labeling looks great, I wish all languages did this! We got the idea from Swift! All the credit to them. > 7. Type system looks simple but capable, but in the User example it looks like the LoggedIn constructor isn't namespaced to User, so what happens if another type has the same constructor name? Conflict? Yes, you cannot define two constructors (or functions, or types) with the name module with the same name. > On the same note, can you extend custom types after declaration, by adding constructors? (A little like Clojure protocols) > 8. Can functions be overloaded, so you can provide multiple implementations for different argument signatures? > 9. Can you implement custom operators, so you can for example `+` custom types together? No, these features are not currently supported. We may add something in this direction at a later date if we have a good proposal that fits well with the languaage and provides clear benefits. > I too miss the concurrency aspects given it's built on Erlang. They are still there! They're just libraries rather than having dedicated syntax. https://github.com/gleam-experiments/otp_agent https://github.com/gleam-experiments/otp_process > Great work, definitely going to follow this! Thank you
In Gleam: A statically typed language for the Erlang VM

Showing the 15 most recent of 17 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.