Welcome! Akwaaba! Merhaba! 你好!

Aburi, pronounced "Eh-bree," is a modern C and C++ compiler. It currently uses LLVM as a backend, with work underway on a native backend (Aburi IR). The project is still early and under heavy development. It includes the Adinkra C++ standard library, which can be used with other compilers like Clang.

The goals of Aburi are the following:

  • Lightweight! Aburi pulls in no external dependencies other than LLVM. Minimizing memory and CPU overhead is a long-term goal of the project.

  • Feature-Complete! Almost all of the C standard has been implemented. Full C++ compliance is well underway. Aburi can compile demanding C programs such as Ghostscript, Postgres, and even the Linux Kernel, along with a growing selection of Clang libc++ headers. Many Clang and GCC-specific language extensions are implemented.

  • Fast! Work is underway for a "fast" mode for debug builds to help with heavy edit-compile-debug workflows. The Adinkra "non-optimized" C++ standard library can already provide 2x-5x speedup in build time when building real C++ programs with Apple Clang.

The name of the project comes from the small town of Aburi in Ghana and the beautiful botanical gardens located within. "Aburi" also means "mist" in Romanian, meaning one could also call Aburi the "Misty Compiler" :)

A view of Aburi Botanical Gardens in Ghana
Aburi Botanical Gardens in Ghana.

Try It

The Quick start page has download/installation instructions.

The source repository is available at GitHub.

Aburi is now available on Compiler Explorer. On Compiler Explorer, Aburi runs on and targets Linux x64, which may result in unresolved platform-specific bugs that do not appear on Darwin aarch64 (currently Aburi’s primary development platform). Please report any bugs you find: it would be highly appreciated.

Aburi is pre-alpha software. It is currently buggy, incomplete, and early.

Contributing

Contributions are always welcome. See the CONTRIBUTING.md for more information.

Future Plans

Current priorities include:

  • Fixing silent miscompiles exposed by deeper real-world program execution.

  • Expanding C++ support and compatibility with real standard-library headers.

  • Improving compiler performance and memory usage.

  • Improving platform coverage beyond the current Apple AArch64 default, including Linux AArch64.

  • Developing AIR (Aburi IR) and extending its supported target and language surface.