A modern Erlang build tool for creating, developing, and releasing Erlang libraries, applications, and systems in a repeatable manner.
Rebar3 is an Erlang build tool that simplifies creating, developing, and releasing Erlang libraries, applications, and systems. It ensures repeatable builds by managing dependencies, enforcing standard project structures, and integrating with Erlang's toolchain. The tool addresses the shortcomings of its predecessor, Rebar 2.x, by providing a more robust and user-friendly experience for Erlang developers.
Erlang developers and teams building Erlang applications who value repeatable builds, standard project conventions, and seamless integration with development tools.
Developers choose Rebar3 for its comprehensive feature set, including dependency management, release building, and extensibility via plugins, all while maintaining compatibility with the latest Erlang/OTP versions and community standards.
Erlang build tool that makes it easy to compile and test Erlang applications and releases.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Handles Hex packages and source dependencies with deterministic fetching and locking, ensuring repeatable builds as emphasized in the README's focus on community standards.
Supports building self-contained Erlang releases with relx, including tarball packaging for deployment, which simplifies shipping production systems.
Runs Common Test and EUnit directly from the tool with code coverage analysis, streamlining the testing workflow without extra setup.
Allows custom tasks and behaviors via plugins, flexible enough for other BEAM languages like LFE, as shown in the README with rebar3_lfe.
Requires significant changes to project structure and dependency handling, as admitted in the README's migration guide, which can be a barrier for legacy projects.
Compatibility is tightly coupled to specific Erlang/OTP versions, and managing multiple versions necessitates external tools like kerl, adding setup complexity.
Core compilers like C or Diameter were moved to plugins, meaning extra configuration and maintenance for projects relying on these features.