Compile with: -std=c++17
Linker options:
-lstdc++fs
to enablestd::experimental::filesystem
-pthread
to use threading with CSV files-lws2_32
for Windows socket support (inutils::http
)-lsqlite3
to link with SQLite on Unix systems (SQLite source is also available as alternative) Installsqlite3
andlibsqlite3-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"
insidesqlite_orm
and addsqlite3.c
to your build system.
Doxygen documentation can be found here.
Code coverage (lcov) report can be found here.
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:https://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 |