Generated by GPT-5-mini| Hex (package manager) | |
|---|---|
| Name | Hex |
| Developer | Erlang/Elixir community |
| Released | 2014 |
| Programming language | Elixir, Erlang |
| Operating system | Cross-platform |
| License | MIT |
Hex (package manager) is a package manager for the Erlang and Elixir ecosystems that provides publishing, dependency resolution, and distribution for libraries and applications. It emerged to fill needs similar to those addressed by RubyGems, npm, and CPAN while integrating with tools like Mix and the Erlang/OTP toolchain. Hex emphasizes reproducible builds, cryptographic verification, and an open registry of packages.
Hex originated in the mid-2010s within the Elixir community during the growth era marked by releases of Elixir 1.0 and expansions of Erlang/OTP capabilities. Key contributors included members associated with projects and organizations such as José Valim, Eric Meadows-Jönsson, and companies tied to WhatsApp-related engineering and Discord-scale deployments. The project was influenced by artifacts like RubyGems, npm, Cargo, and NuGet; it responded to incidents in public registries and trends exemplified by the 2016 left-pad incident and supply chain attack patterns. Over time Hex integrated into the standard workflow of ElixirConf presentations and discussions at conferences like Erlang User Conference.
Hex is implemented using Elixir and interoperates with the BEAM runtime provided by Erlang/OTP. Its architecture separates a client CLI, a central registry service, and package storage. The registry models metadata similarly to systems such as npm's registry and PyPI metadata while using protocols compatible with Mix and Rebar3. It supports semantic versioning influenced by SemVer conventions and uses cryptographic primitives analogous to practices in OpenSSL ecosystems for package verification. The design decisions echo lessons from Debian package management and distribution patterns observed in GitHub-centric workflows.
Hex operates a central registry service commonly called Hex.pm, hosting packages, releases, and metadata for libraries authored by individuals and organizations such as Phoenix, Nerves, and ecosystem projects connected to Ecto. The registry supports namespaces for authors and organizations, publishing processes aligned with practices in Maven repositories and NuGet packages. Package pages often reference source repositories hosted on platforms like GitHub, GitLab, and integrations with continuous integration services such as Travis CI, CircleCI, and GitHub Actions. Hex.pm provides metrics and download counts akin to those found on npm trends and PyPI Stats and includes metadata fields referencing licenses recognized by organizations like Open Source Initiative.
The Hex client is primarily exposed via the Mix build tool; commands mirror patterns from Bundler and Cargo CLI ergonomics. Common commands include publishing, dependency fetching, and package auditing; workflows interoperate with Distillery and release tooling used in Erlang/OTP deployments. The CLI supports offline caches, lockfiles comparable to package-lock.json and Cargo.lock, and version constraints following SemVer practices. Integration points exist for editors and IDEs popular in the ecosystem, including Visual Studio Code, IntelliJ IDEA, and plugins developed by community members.
Hex employs cryptographic checksums and metadata signing to detect tampering, influenced by threat analyses from incidents affecting npm and PyPI. It supports maintainership models, owner management, and package deprecation policies similar to governance patterns in npm and RubyGems. The registry and client enforce rate limiting and abuse controls comparable to those used by GitHub and Docker Hub to mitigate automated attacks. Security advisories and coordinated disclosure practices reference standards from organizations like OWASP and the Open Source Security Foundation; vulnerability disclosures are communicated through ecosystem channels such as Elixir Forum and security mailing lists.
Hex is the de facto package manager for Elixir and widely used in Erlang projects, supported by frameworks and libraries such as Phoenix, Ecto, Plug, and Nerves. Major companies and projects in the real-time and telecom space that use the BEAM, including teams influenced by WhatsApp and Pinterest practices, rely on Hex for dependency distribution. Open-source registries, mirrors, and integrations with CI/CD providers enable enterprise adoption patterns similar to those of Artifactory and Nexus Repository Manager.
Hex's source code is developed openly with contributions from community members and maintained under permissive licensing consistent with practices endorsed by the Open Source Initiative; many components use the MIT License. Development occurs on platforms like GitHub and follows contribution workflows inspired by large projects such as Linux kernel and Elixir itself. Roadmap discussions surface at events like ElixirConf and in working groups modeled after governance structures used by projects such as Node.js and Rust.
Category:Package managers Category:Elixir (programming language) ecosystem Category:Erlang ecosystem