Generated by GPT-5-mini| Rebar3 | |
|---|---|
| Name | Rebar3 |
| Developer | Erlang Solutions |
| Released | 2016 |
| Programming language | Erlang |
| Operating system | Cross-platform |
| License | Apache License 2.0 |
Rebar3 Rebar3 is a build tool and release manager for the Erlang ecosystem designed to automate compilation, testing, packaging, and deployment. It integrates with tools from the OTP (Open Telecom Platform) stack, supports dependency management for projects using Hex, and provides extensible plugin hooks used by organizations such as Ericsson, Nokia, WhatsApp, and Cisco Systems. Rebar3 aims to standardize workflows across projects influenced by Joe Armstrong, Robert Virding, and the design patterns originating in Austrian Erlang Factory communities.
Rebar3 was created to address limitations observed in prior tools used by teams at Erlang Solutions and contributors from the Erlang Factory. It streamlines interactions with the BEAM (virtual machine), coordinates compilation with OTP release handling and integrates with dependency registries like Hex. Rebar3's lifecycle covers compilation, documentation generation compatible with Erlang/OTP documentation conventions, and creating releases usable by deployment automation platforms such as Ansible, Puppet, Chef, and Kubernetes. The project has been shaped by community input from contributors with histories at Ericsson, Facebook, Goldman Sachs, and Heroku.
Rebar3 provides an extensible architecture built in Erlang, leveraging the OTP (Open Telecom Platform) principles of supervision trees and release management. Core features include dependency resolution against Hex and Git repositories, deterministic builds for production deployments used by teams at WhatsApp and T-Mobile, and plugin-based task orchestration inspired by concepts from Make and Apache Ant. The configuration format supports manifests compatible with SASL and OTP release handlers, enabling integration with tracing tools like Observer and monitoring platforms such as Prometheus, Grafana, and New Relic. Rebar3's plugin API allows extension points similar to plugin ecosystems in Maven, Gradle, and npm.
Installing Rebar3 typically involves obtaining a prebuilt binary or building from source in environments including Debian, Ubuntu, CentOS, Fedora, macOS, and Windows Server. Common usage patterns include creating projects with templates influenced by GitHub repositories and scaffolding used in Erlang Solutions training materials, invoking compile, eunit, and ct test suites referencing Common Test harnesses, and packaging releases suitable for systemd or upstart service managers. Integration with continuous integration systems such as Jenkins, Travis CI, CircleCI, GitLab CI/CD, and Bamboo is widely documented, with teams adopting pipelines used by Red Hat and Canonical.
Rebar3 ships with built-in plugins and supports third-party plugins similar to ecosystems maintained around Maven Central and Hex. Notable plugin categories include testing adapters for EUnit, Common Test, and property-based testing influenced by QuickCheck traditions; documentation generators that interoperate with Edoc; and release packaging that coordinates with relx and Distillery patterns. Plugin development is practiced by contributors from Erlang Solutions, RabbitMQ maintainers, and community projects hosted on GitHub, Bitbucket, and GitLab.
The Rebar3 project has an active contributor base drawn from commercial and academic institutions such as Ericsson, Nokia, WhatsApp, IBM, and several university research groups. Development discussions occur on channels including GitHub, mailing lists used by the Erlang Ecosystem Foundation, and chat platforms popularized by Slack and Matrix. The release cadence and feature roadmap are influenced by maintainers with prior work on OTP (Open Telecom Platform), and collaborative governance mirrors practices seen at Apache Software Foundation and Linux Foundation projects. Community events and workshops at Erlang Factory, LambdaConf, and Strange Loop have helped disseminate best practices.
Rebar3 is used in production by companies across telecommunications, finance, and web services including WhatsApp, Ericsson, T-Mobile, Goldman Sachs, and Heroku-hosted services. Open-source projects such as RabbitMQ, various Cowboy-based applications, and libraries distributed via Hex often provide rebar3 build definitions for contributors. Example workflows demonstrate building OTP releases for deployment to orchestration platforms like Kubernetes, integrating with monitoring stacks including Prometheus and Grafana, and automating CI pipelines on Jenkins or GitLab CI/CD.
Category:Software