Skip to content
/ utils Public

C++ utilities library for projects.

License

Notifications You must be signed in to change notification settings

ThenTech/utils

Folders and files

NameName
Last commit message
Last commit date

Latest commit

48b5db2 · Jun 4, 2021

History

78 Commits
Aug 27, 2020
Aug 27, 2020
Jan 18, 2019
Aug 27, 2020
Sep 6, 2019
Jun 8, 2019
Jan 18, 2019
Jun 4, 2021
Jun 3, 2019
Aug 27, 2020
Aug 27, 2020
Sep 6, 2019
Aug 27, 2020
Aug 27, 2020

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

About

C++ utilities library for projects.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages