Core utilities for graphics and game programming
  • C++ 94.7%
  • CMake 5.2%
  • Python 0.1%
Find a file
2026-05-29 19:01:58 +10:00
cmake convert to C++20 modules. 2026-05-25 23:32:04 +10:00
docs Refactor static_vector 2021-04-09 13:17:02 -06:00
include/beyond convert remaining part of the codebase to C++20 modules 2026-05-26 11:07:02 +10:00
src Topological sort 2026-05-29 19:01:58 +10:00
test Topological sort 2026-05-29 19:01:58 +10:00
test_package Creates conan recipe 2020-08-29 21:11:43 -06:00
.clang-format Better panic 2023-10-11 21:02:40 +08:00
.clang-tidy convert to C++20 modules. 2026-05-25 23:32:04 +10:00
.gitignore Creates conan recipe 2020-08-29 21:11:43 -06:00
beyond_core.natvis Adds a natvis file 2023-12-16 05:22:27 +08:00
cmake-format.yaml Add StandardProjectSettings.cmake 2020-02-26 18:29:29 -07:00
CMakeLists.txt convert to C++20 modules. 2026-05-25 23:32:04 +10:00
codecov.yml Fix CI 2020-02-24 05:19:56 -07:00
LICENSE Change license to mit 2020-03-27 15:39:28 -06:00
README.md Update readme: remove stale conan CMake flag in README 2026-05-26 11:52:36 +10:00
vcpkg.json convert to C++20 modules. 2026-05-25 23:32:04 +10:00

Beyond Core

Mirrors: git.lesleylai.info | Codeberg

beyond::core is a library with a bunch of utilities that are associated with graphics and game programming.

It is initially intended to be the core component of "Beyond Game Engine," which unfortunately never becomes a thing. However, I use this library a lot in various other personal projects.

Codemap

beyond::core contains the following C++ library components:

  • algorithm
    additional STL-style algorithm library.
  • concurrency
    A work-stealing thread-pool based task system
  • coroutines
    C++20 coroutine supporting library.
  • container
    contains additional STL-style containers.
  • ecs (incomplete and unusable)
    contains an implementation of an entity component system.
  • math
    contains a mathematics library with a graphics focus.
  • types
    contains non-container utility types, like the optional and expected types with monadic extensions.
  • utils
    contains utility and helper code.

Usage

This library is not in a usable state to the public yet. The features are incomplete and are coded as need. I will also make breaking changes frequently.

Build

Important

This project uses C++20 modules. You need a module-ready compiler and build system toolchain

CMake Options

  • BEYOND_CORE_BUILD_TESTS (OFF by default) build tests
  • BEYOND_CORE_BUILD_TESTS_COVERAGE (OFF by default) test coverage with gcov and lcov
  • BEYOND_CORE_BUILD_DOCUMENTATION (OFF by default) build doxygen documentation

Other useful options for developing purpose

  • BEYOND_CORE_WARNING_AS_ERROR (ON by default) treat compiler warnings as errors
  • BEYOND_CORE_USE_ASAN (OFF by default) address sanitizer
  • BEYOND_CORE_USE_TSAN (OFF by default) thread sanitizer
  • BEYOND_CORE_USE_MSAN (OFF by default) memory sanitizer
  • BEYOND_CORE_USE_UBSAN (OFF by default) undefined behavior sanitizer

Acknowledgements

License

This repository is released under MIT License. See License for more information.