Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

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

TermsPrivacyAboutGitHubRSS
  1. Home
  2. D
  3. reggae

reggae

BSD-3-ClauseD

A meta build system with multiple language frontends (D, Python, Ruby, JavaScript, Lua) and backend generators (make, ninja, tup, custom).

GitHubGitHub
187 stars24 forks0 contributors

What is reggae?

Reggae is a meta build system that provides a unified API for describing software builds in multiple programming languages (D, Python, Ruby, JavaScript, Lua) and generates build files for various backends like Ninja, Make, Tup, or its own binary backend. It solves the problem of being locked into a single build description language or engine by separating the frontend language from the backend executor.

Target Audience

Developers working on multi-language projects, especially those using D, C, or C++, who want a more expressive and flexible build system than traditional tools like Make or CMake.

Value Proposition

Reggae offers unparalleled flexibility by allowing developers to write build logic in a familiar programming language while supporting multiple high-performance build backends, eliminating the need to learn proprietary build languages or commit to a single build engine.

Overview

Build system in D, Python, Ruby, Javascript or Lua

Use Cases

Best For

  • Building D projects with integrated Dub support
  • Mixing C, C++, and D code in a single build
  • Generating Ninja build files from Python scripts
  • Creating portable build systems that don't require tool installation
  • Writing complex build logic with a full programming language
  • Experimenting with different build backends (Make vs Ninja vs Tup)

Not Ideal For

  • Projects requiring fine-grained change detection in all imported scripting modules
  • Teams needing uniform feature access across all backends (e.g., D code execution in Ninja)
  • Environments where simplicity and out-of-box functionality are prioritized over flexibility
  • Users who prefer a single, widely-adopted build system with extensive community support

Pros & Cons

Pros

Multiple Language Support

Allows writing build descriptions in D, Python, Ruby, JavaScript, or Lua using declarative APIs, making it accessible to developers with different language preferences, as shown in the frontend examples.

Backend Independence

Generates build systems for Make, Ninja, Tup, or a custom binary backend, enabling users to choose the most efficient tool without rewriting build logic, per the philosophy of separating description from engine.

No Runtime Dependency

Can export standalone build systems with the --export option, so end-users don't need Reggae installed, facilitating portability and ease of distribution, similar to autotools.

Automatic Dependency Handling

Handles header and module dependencies for C, C++, and D automatically, reducing manual configuration and potential errors, as highlighted in the features list.

Cons

Inconsistent Backend Features

Not all features are available for all backends; for example, the tup backend lacks dub support, and executable D commands are only in the binary backend, leading to a fragmented experience as noted in the README.

Scripting Frontend Limitations

Builds in scripting languages cannot detect changes in imported files and lack access to advanced features like the binary backend or dub rules, which limits functionality compared to the D frontend, as admitted in the limitations section.

Bootstrap Complexity

Requires a D compiler to build itself and has a multi-step bootstrap process, which can be cumbersome compared to single-command installations of other build systems, adding initial setup overhead.

Open Source Alternative To

reggae is an open-source alternative to the following products:

CMake
CMake

CMake is an open-source, cross-platform build system generator that controls the software compilation process using platform-independent configuration files. It is widely used for C, C++, and other languages.

Frequently Asked Questions

Quick Stats

Stars187
Forks24
Contributors0
Open Issues33
Last commit12 days ago
CreatedSince 2015

Tags

#multi-language#d#d-language#ninja#dlang#cmake#build-system#python#dependency-graph#scripting-language#javascript#lua#make

Built With

D
D

Included in

D748
Auto-fetched 1 day ago

Related Projects

dubdub

Package and build management system for D

Stars722
Forks242
Last commit1 month ago
scons-dscons-d

Scons has built-in support for building D projects, thanks to Russel Winder

Stars0
Forks0
Last commit
buttonbutton

A universal build system to build your software at the push of a button

Stars0
Forks0
Last commit
XMakeXMake

XMake is a crossplatform build system, that incorporated the D language and also has support for DUB repositories

Stars0
Forks0
Last commit
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