Skip to content
/ utils Public

C++ utilities library for projects.

License

Notifications You must be signed in to change notification settings

ThenTech/utils

Repository files navigation

C++ Utility library

codecov Travis (.org) GitHub last commit License

version c++-version tested-with

Compile with: -std=c++17

Linker options:

  • -lstdc++fs to enable std::experimental::filesystem
  • -pthread to use threading with CSV files
  • -lws2_32 for Windows socket support (in utils::http)
  • -lsqlite3 to link with SQLite on Unix systems (SQLite source is also available as alternative) Install sqlite3 and libsqlite3-dev to link automatically.

For MSVC:

  • For sanity sake, globally define _CRT_SECURE_NO_WARNINGS in Properties>C/C++>Preprocessor>Preprocessor Definitions
  • Change #include <sqlite3> to #include "sqlite3.h" inside sqlite_orm and add sqlite3.c to your build system.

Doxygen documentation can be found here.

Code coverage (lcov) report can be found here.

Contents

File Description
utils_algorithm.hpp Algorithmic extensions and ::iter with CPPItertools
utils_bits.hpp Bit related extensions
utils_colour.hpp Colour class and LUTs for colour mappings from tinycolormap
utils_compiler.hpp MACRO helpers
utils_control.hpp PIDController implementation from tekdemo
utils_crc.hpp Namespace wrapper for CRC calculations from CRCpp
utils_csv.hpp Namespace wrapper for CSV file IO from p-ranav/csv
utils_exceptions.hpp Extra Exceptions
utils_http.hpp Namespace wrapper for HTTPRequest from elnormous/HTTPRequest
utils_ini.hpp ConfigReader class commonly for .ini files
utils_io.hpp File/Stream IO (BitStream...) and ::mio with memory mapped file io
utils_json.hpp Namespace wrapper for nlohmann JSON
utils_logger.hpp Static Logger singleton
utils_math.hpp Math extensions
utils_memory.hpp Memory management
utils_misc.hpp Other (lexical_cast, scoped callback...)
utils_os.hpp OS extensions (console manipulation with colours etc.)
utils_print.hpp Generic pretty printer
utils_profiler.hpp Static Profiler singleton and macros for profiling function-/blocks in chrome://tracing format
utils_random.hpp Namespace wrapper for effolkronium/random and extra generators
utils_sqlite.hpp Namespace wrapper for fnc12/sqlite_orm
utils_string.hpp String extensions
utils_test.hpp Extra's for Doctest like custom ASSERT and std::abort() recoverable test
utils_threading.hpp Threadpool class and related things
utils_time.hpp Time measurement
utils_traits.hpp Type traits and other macro helpers.
utils_version.hpp Namespace wrapper for Neargye semver
utils_xorstring.hpp Compile time string obfuscation from JustasMasiulis or qis
algo/algo_avltree.hpp AVL Tree implementation
algo/algo_bstree.hpp Binary Search Tree implementation
algo/algo_huffman.hpp Huffman compress/decompress
crypto/crypto_aes.hpp Basic AES implementation (WIP)
crypto/crypto_feistel.hpp Basic Feistel cipher structure (WIP)
crypto/crypto_packager.hpp Basic functions to pack/unpack data (WIP)
external/cppitertools CPPItertools by Ryan Haining
external/crc CRC calculations from CRCpp
external/csv csv library by p-ranav
external/hedley Hedley MACRO helpers
external/HTTPRequest HTTPRequest library by elnormous
external/sqlite_orm SQLite3 wrapper by fnc12. Also contains sqlite3 amalgamation.
external/doctest.hpp Doctest C++ test framework
external/json.hpp JSON library by Niels Lohmann
external/mio.hpp mio by Mabdreyel
external/random.hpp Modern random utilities from effolkronium/random
external/semver.hpp Semantic versioning library by Neargye
/utils_test/ Unit tests for most functions with Doctest

Releases

No releases published

Packages

No packages published

Languages