Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Erlang
  3. rebar3

rebar3

Apache-2.0Erlang3.27.0

A modern Erlang build tool for creating, developing, and releasing Erlang libraries, applications, and systems in a repeatable manner.

Visit WebsiteGitHubGitHub
1.8k stars528 forks0 contributors

What is rebar3?

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.

Target Audience

Erlang developers and teams building Erlang applications who value repeatable builds, standard project conventions, and seamless integration with development tools.

Value Proposition

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.

Overview

Erlang build tool that makes it easy to compile and test Erlang applications and releases.

Use Cases

Best For

  • Managing dependencies and ensuring repeatable builds for Erlang projects
  • Building self-contained releases and tarballs for Erlang applications
  • Running integrated tests (Common Test, EUnit) and code coverage analysis
  • Extending build workflows with custom plugins for specialized tasks
  • Developing Erlang libraries with enforced standard project structures
  • Using profiles to manage environment-specific configurations

Not Ideal For

  • Teams using Elixir as their primary language, as Mix is the standard build tool for Elixir projects and offers better integration with Elixir's ecosystem
  • Projects stuck on very old, unsupported Erlang/OTP versions (pre-19) that lack compatibility with recent Rebar3 releases
  • Developers seeking a minimal, configuration-free tool for simple Erlang scripts or one-file projects that don't require full project management

Pros & Cons

Pros

Robust Dependency Management

Handles Hex packages and source dependencies with deterministic fetching and locking, ensuring repeatable builds as emphasized in the README's focus on community standards.

Integrated Release Tooling

Supports building self-contained Erlang releases with relx, including tarball packaging for deployment, which simplifies shipping production systems.

Comprehensive Testing Support

Runs Common Test and EUnit directly from the tool with code coverage analysis, streamlining the testing workflow without extra setup.

Extensible Plugin Ecosystem

Allows custom tasks and behaviors via plugins, flexible enough for other BEAM languages like LFE, as shown in the README with rebar3_lfe.

Cons

Steep Migration from Rebar2

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.

Erlang Version Management Overhead

Compatibility is tightly coupled to specific Erlang/OTP versions, and managing multiple versions necessitates external tools like kerl, adding setup complexity.

Plugin Dependency for Advanced Features

Core compilers like C or Diameter were moved to plugins, meaning extra configuration and maintenance for projects relying on these features.

Frequently Asked Questions

Quick Stats

Stars1,813
Forks528
Contributors0
Open Issues199
Last commit5 days ago
CreatedSince 2014

Tags

#hacktoberfest#template#plugin-system#otp#compile#packages#hex-pm#releases#dependency-management#erlang-vm#testing#release-management#test#erlang#dependencies#build#build-tool

Built With

E
Erlang

Links & Resources

Website

Included in

Erlang1.7k
Auto-fetched 19 hours ago

Related Projects

rebarrebar

Deprecated Erlang build tool that makes it easy to compile and test Erlang applications, port drivers and releases. We encourage you to move to https://github.com/erlang/rebar3.

Stars930
Forks290
Last commit8 years ago
syncsync

On-the-fly recompiling and reloading in Erlang. Code without friction.

Stars762
Forks156
Last commit1 year ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub