macOS
brew install erlanglocal Homebrew formula metadata
sudo port install erlangMacPorts ports tree · lang/erlang/Portfile · source: api.github.com
brew
Programming language for highly scalable real-time systems. Version 29.0.3 via Homebrew; verified 2026-07-03.
install
brew install erlanglocal Homebrew formula metadata
sudo port install erlangMacPorts ports tree · lang/erlang/Portfile · source: api.github.com
sudo apt install erlangDebian stable package indexes · erlang · source: deb.debian.org
sudo dnf install erlangFedora Rawhide package metadata · erlang · source: dl.fedoraproject.org
sudo pacman -S erlangArch Linux sync databases · erlang · source: geo.mirror.pkgbuild.com
sudo zypper install erlangopenSUSE Tumbleweed package metadata · erlang · source: download.opensuse.org
nix profile install nixpkgs#typernixpkgs package indexes · pkgs/by-name/ty/typer/package.nix · source: api.github.com
choco install erlangChocolatey community package catalog · erlang · source: community.chocolatey.org
scoop install main/erlangScoop official bucket manifest trees · bucket/erlang.json · source: api.github.com
winget install --id Erlang.ErlangOTP -eWindows Package Manager source index · Erlang.ErlangOTP · source: cdn.winget.microsoft.com
overview
Programming language for highly scalable real-time systems
history
Erlang/OTP is a programming language, runtime system, standard library set, and design-methodology suite for massively scalable soft real-time systems with high-availability requirements. It is one of the canonical BEAM ecosystem packages: installing `erlang` usually means getting the compiler, shell, runtime, OTP applications, and tools such as Dialyzer.
Erlang began at Ericsson as a language and runtime for telecom systems, with Joe Armstrong, Robert Virding, and Mike Williams credited by Erlang's official FAQ as the original language designers. The language was shaped around lightweight processes, message passing, fault tolerance, hot code loading, and distribution because telecom switching systems needed long-running services that could be upgraded and recovered without ordinary downtime.
OTP, the Open Telecom Platform, grew around Erlang as the reusable library and design-principles layer. The official Erlang/OTP README describes OTP as the Erlang runtime system plus ready-to-use components and design principles for Erlang programs. In practice, OTP behaviours such as servers, supervisors, and applications are as important to Erlang culture as the syntax of the language itself.
The public GitHub repository was created in 2009, moving the visible development workflow into the same source-control and pull-request culture used by many package ecosystems. The README points users to GitHub issues, contribution docs, official downloads, and source builds, while the install guide documents Unix/Linux and macOS source builds from official tarballs or Git clones.
Erlang's original adoption base was telecom infrastructure, but its reputation expanded to any domain that values concurrency, fault tolerance, and soft real-time behavior. The official README now describes the language in broad terms rather than telecom-only terms, and package-manager coverage across Homebrew, Debian, Ubuntu, Fedora, Arch, MacPorts, Nix, Chocolatey, Scoop, winget, and zypper reflects that it is treated as a standard language runtime.
The wider BEAM ecosystem increased Erlang/OTP's visibility beyond Erlang-only projects. Elixir runs on the same VM, tools such as ExDoc are used for Erlang documentation builds, and Erlang/OTP remains the base runtime layer for BEAM package managers, releases, and deployment workflows.
Daily use starts with `erl` for the interactive shell, `erlc` for compiling modules, `escript` for script-like command-line programs, and `epmd` for node discovery. The Homebrew formula also exposes tools such as `dialyzer`, `ct_run`, `typer`, `run_erl`, and `to_erl`, which reflects the fact that Erlang/OTP is a full runtime and operations toolkit rather than a single compiler binary.
Developers use Erlang/OTP to build supervision trees, distributed nodes, long-running services, protocol servers, and concurrent applications. Packagers must care about native dependencies such as OpenSSL, ncurses, Java for jinterface, wxWidgets for GUI pieces, and documentation tooling because optional OTP applications are built or skipped depending on what the build environment provides.
Erlang is significant in package-manager culture because it is both a language runtime and a dependency substrate. Installing it unlocks Erlang applications, many Elixir workflows, BEAM tooling, release managers, language servers, and test tools; version selection affects compiled code, NIF compatibility, TLS support, and available OTP applications.
It is also a classic example of a package whose build is simple to type but not trivial to package well. The official install guide documents source tarballs, Git clones, `$ERL_TOP`, Unix/macOS builds, and optional components gated by system libraries. That gives package maintainers real choices about feature coverage, reproducibility, patching, and compatibility with downstream BEAM tooling.
security posture
generalized runtime or code generation signal.
yellow risk · medium confidence · runtime
Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.
executables
| Command | Kind | Exposure | Note |
|---|---|---|---|
ct_run | cli | global executable | |
dialyzer | cli | global executable | |
epmd | cli | global executable | |
erl | cli | global executable | |
erlc | cli | global executable | |
escript | cli | global executable | |
run_erl | cli | global executable | |
to_erl | cli | global executable | |
typer | cli | global executable |
freshness
These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.
install metadata
| Package key | brew:erlang |
|---|---|
| Version | 29.0.3 |
| Package manager | Homebrew |
| Package manager page | https://formulae.brew.sh/formula/erlang |
| Homepage | https://www.erlang.org/ |
| Repository | https://github.com/erlang/otp |
| Upstream docs | https://www.erlang.org/doc/system/reference_manual.html |
| License | Apache-2.0 |
| Source archive | https://github.com/erlang/otp/releases/download/OTP-29.0.3/otp_src_29.0.3.tar.gz |
| Last updated | 2026-07-03T00:34:23Z |
| Pulse | updated |
| Dependencies | openssl@3, unixodbc, wxwidgets@3.2 |
| Uses from macOS | ncurses |
| Bottle | available (on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux) |
| Homebrew post-install | not defined |
| Service | none declared |
| Caveats | Man pages can be found in: $HOMEBREW_PREFIX/opt/erlang/lib/erlang/man Access them with `erl -man`, or add this directory to MANPATH. |
registry facts
| Source Database | Homebrew formula API |
|---|---|
| Tap | homebrew/core |
| Full Name | erlang |
| Aliases |
|
| Version Scheme | 0 |
| Revision | 0 |
| Head Version | HEAD |
| Bottle Stable Root URL | https://ghcr.io/v2/homebrew/core |
| Deprecated | no |
| Disabled | no |
| Keg Only | no |
| URL Keys |
|
source database matches
Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.
erlang 1:27.3.4.1+dfsg-1+deb13u2
Concurrent, real-time, distributed functional language
sudo apt install erlangerlang-asn1 1:27.3.4.1+dfsg-1+deb13u2
Erlang/OTP modules for ASN.1 support
sudo apt install erlang-asn1erlang-base 1:27.3.4.1+dfsg-1+deb13u2
Erlang/OTP virtual machine and base applications
sudo apt install erlang-baseerlang-common-test 1:27.3.4.1+dfsg-1+deb13u2
Erlang/OTP application for automated testing
sudo apt install erlang-common-testerlang-crypto 1:27.3.4.1+dfsg-1+deb13u2
Erlang/OTP cryptographic modules
sudo apt install erlang-cryptoerlang-debugger 1:27.3.4.1+dfsg-1+deb13u2
Erlang/OTP application for debugging and testing
sudo apt install erlang-debuggererlang-dev 1:27.3.4.1+dfsg-1+deb13u2
Erlang/OTP development libraries and headers
sudo apt install erlang-deverlang-dialyzer 1:27.3.4.1+dfsg-1+deb13u2
Erlang/OTP discrepancy analyzer application
sudo apt install erlang-dialyzererlang-diameter 1:27.3.4.1+dfsg-1+deb13u2
Erlang/OTP implementation of RFC 6733 protocol
sudo apt install erlang-diametererlang-doc 1:27.3.4.1+dfsg-1+deb13u2
Erlang/OTP HTML documentation
sudo apt install erlang-docerlang-edoc 1:27.3.4.1+dfsg-1+deb13u2
Erlang/OTP module for generating documentation
sudo apt install erlang-edocerlang-eldap 1:27.3.4.1+dfsg-1+deb13u2
Erlang/OTP LDAP library
sudo apt install erlang-eldaperlang-et 1:27.3.4.1+dfsg-1+deb13u2
Erlang/OTP event tracer application
sudo apt install erlang-eterlang-eunit 1:27.3.4.1+dfsg-1+deb13u2
Erlang/OTP module for unit testing
sudo apt install erlang-euniterlang-examples 1:27.3.4.1+dfsg-1+deb13u2
Erlang/OTP application examples
sudo apt install erlang-exampleserlang-ftp 1:27.3.4.1+dfsg-1+deb13u2
Erlang/OTP FTP client
sudo apt install erlang-ftpsource trail
This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.
View the package source record on GitHub.