Skip to content

n0lavar/qxLib

Repository files navigation

qxLib

Donate codecov lines lines lines licence

The library contains various classes, functions and macros that can be useful when developing games and game engines.
The code is designed to be as performant, extensible and generic as possible. It follows the style of the standard library in terms of code style, use of iterators, traits, etc. The library is intended to extend the functionality of the standard library and not copy it.

Some examples:

  • Implementations of observer, delegate, singleton, generic iterator, double dispatch and other patterns;
  • A string that fully follows the std::string interface and supports compile-time configuration of a large number of parameters (SSO size, alignment, hashing algorithms, comparison, formatting, etc.) and contains additional methods (format(), to_lower()/to_upper(), to<T>(), from<T>(), trim()/trim_right()/trim_left(), remove_prefix()/remove_suffix(), split() etc.);
  • Extension of standard library algorithms;
  • Macro based RTTI system;
  • Additional containers, e.g. cache friendly 2d vector, pool of unique objects, symmetric matrix container , etc.;
  • Easing algorithms for working with animation;
  • Streams based logging system;

...and much more. See doxygen documentation for more info.

Feel free to suggest any improvements.

Status:

Compiler
(uses the last machine,
see logs for a compiler version)
Debug Release
Clang ubuntu_clang_debug ubuntu_clang_release
GCC ubuntu_gcc_debug ubuntu_gcc_release
MSVC windows_msvc_debug windows_msvc_release

Dependencies:

Required:

  • C++20

Optional:

  • glm (/render, /math)
  • boost (qx::unique_objects_pool)

License

qxLib is available under the MIT License. See LICENSE.txt.

Authors

qxLib was mainly written and is maintained by Nick Khrapov
(nick.khrapov@gmail.com). See the git commit log for other authors.

SAST Tools

PVS-Studio - static analyzer for C, C++, C#, and Java code.

Releases

No releases published

Packages

 
 
 

Contributors