Welcome! Akwaaba! Merhaba! 你好!
Aburi, pronounced "Eh-bree," is a C and C++ compiler frontend. It currently lowers source code to LLVM IR, uses LLVM for optimization and final code emission, and exposes a GCC/Clang-like driver named aburi.
The project is still early and under active development, but it already supports a substantial C surface and a growing C++ subset including classes, inheritance, virtual dispatch, templates, exceptions, and ABI-aware lowering.
The name of the project comes from the small town of Aburi in Ghana and the beautiful botanical gardens located within.
Features
-
Fairly advanced C language support, including GNU/Clang/Apple extensions and builtins. Real world programs such as SQlite, Ghostscript, and Postgres compile sucessfully and pass runtime smokes.
-
Compiler test suites such as the GCC torture suite also compile and run successfully.
-
In-progress C++ support. Parts of the C++ stdlib/STL, such as
<memory>,<type_traits>, and<utility>now compile and pass runtime checks (tested with Clang STL on Mac OS). See the C++ feature support matrix for more information. -
Emits LLVM IR, assembly, object files, or linked executables. A custom backend is in progress.
-
Clang/GCC-compatibility compiler driver. Can mimick Clang/GCC behavior for projects that probe compiler identity.
Some real world projects are tested with Aburi in Github CI to help prevent regressions.
For more information on supported language constructs, see the C feature support, C++ feature support, and Real-World Validation pages.
Try It
Start with Install for dependencies and build commands, then use Getting Started to compile the sample C and C++ programs.
The source repository is available at GitHub.
Status
Aburi is a work-in-progress compiler and is not production quality yet. The public source build currently depends on LLVM 18.x. Long-term plans include a custom backend, broader C++ support, better performance and memory usage, and more platform coverage.