
NOTE: All and any colorations/PRs are welcome, EXCEPT FOR AI GENERATED GARBAGE.
Hey folks,
Let me introduce Auxid: a C++20 platform/library aimed at high-performance applications (specifically game engines and systems software) built around Orthodox C++ and Data-Oriented Design (DOD).
I know the C++ ecosystem isn't short on utility libraries, but I built Auxid to bridge a specific gap: getting the predictable memory layouts and fast compile times of C-style systems programming, without losing the ergonomics of standard C++20 algorithms.
Mainstream C++ often relies on heavily templated, node-based STL containers that can thrash CPU caches or introduce hidden heap allocations. Auxid strips that back. Where the STL is already the right tool for the job (like std::filesystem), Auxid exposes it through thin, zero-overhead wrappers. For the rest, it provides DOD-friendly replacements.
Here’s a quick architectural overview of what’s inside:
- Cache-Friendly Containers: Includes a sparse-dense hash map, strictly aligned vector types, and small-string-optimized (SSO) strings.
- Plays Nice with
<algorithm>: Auxid’s containers use iterators that satisfy C++20 iterator concepts (like contiguous iterators), meaning you can seamlessly pass them intostd::sort, standard ranges, and other utilities. - Total Allocator Control: No surprise allocations in the hot path. Auxid integrates rpmalloc out of the box for extremely fast, thread-caching heap allocation, alongside custom arena allocators.
- Lightweight Error Handling: Instead of exceptions, it relies on a union-based
Result<T, E>andOption<T>that compile to tight representations, paired with Rust-styleAU_TRYmacros. - Explicit Control Flow: Auxid provides an opt-in CMake target (
auxid_platform_standard) that strictly disables C++ exceptions (-fno-exceptions//EHs-c-) to enforce predictable performance characteristics.
It's designed to be dropped directly into existing CMake projects via FetchContent:
FetchContent_Declare(
auxid
GIT_REPOSITORY https://github.com/I-A-S/Auxid.git
GIT_TAG main
)
FetchContent_MakeAvailable(auxid)
If you are interested in DOD, alternative standard libraries, or just want to critique the architecture, I’d really value this community's feedback.
- Core Library: I-A-S/Auxid
- Project Scaffold: I-A-S/Auxid-Project-Template
Licensed under Apache 2.0.
Eager to hear what you think not just about the project, but the principles of Orthodox C++ as a whole!