/libCat

🐈‍⬛ A runtime for C++20 w/out libC or POSIX. Smaller binaries, only arena allocators, SIMD, stronger type safety than STL, and value-based errors!

Primary LanguageC++GNU Affero General Public License v3.0AGPL-3.0

libCat 🐈‍⬛

libCat is a non-POSIX compliant C++23 runtime. It has no pthreads nor malloc(), and by extension no exceptions. It has type-safe arithmetic, SIMD, fast syscalls, interfaces (also known as facades), hierarchical memory allocators, and value-based error-handling, among many other features.

http://wgoo.ch/overflow.html

https://youtu.be/BrBb0mqoIAc

More essays and videos will come in the future.

Building

libCat requires a development version of GCC from the trunk branch. Compiling libCat is only tested using ninja.

$ cmake -B build/ -G 'Ninja Multi-Config'
$ ninja -C build/
$ ./build/tests/Debug/unit_tests

The .clang-format and .clang-tidy configurations are only compatible with recent builds of clang-tools from the main branch.