Skip to content

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

License

Notifications You must be signed in to change notification settings

Cons-Cat/libCat

Repository files navigation

libCat 🐈‍⬛

libCat is a non-POSIX compliant C++26 runtime. It has no pthreads nor malloc(), and by extension no exceptions. It has type-safe arithmetic, SIMD, fast syscalls, CRTP interfaces, 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 recent development version of GCC 15 or Clang 20 from the trunk branch. Compiling libCat is only routinely tested using ninja. Configuring the build requires CMake 3.29.

$ cmake -B build/ -G 'Ninja Multi-Config' # or: cmake -B build -GNinja
$ cmake --build build/  # or: 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.

About

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

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Languages