CoreLib is a cross-platform C++ library with many useful functions and classes for non-GUI development. This SDK supports Windows, MacOS, and Linux platforms.
The following files are in the SDK:
Base - Common defines, macros, and includes for the SDK.
BlockingQueue - A thread-safe efficient queue.
CityHash - A clean implementation of Google's fast "CityHash" function.
Container - A container class for storing sequential data of varying types (strings, integers, floats, and raw buffers).
CoreLib - Functions to initialize and free the entire CoreLib.
CoreUtils - Miscellaneous useful functions such as machine and username, command line arguments, UUID conversions, UU encoding, and proper comparison of floats/doubles.
Crc32 - Classes to easily generate CRC32 checksums; includes both the ubiquitous PKzip algorithm as well as the MPEG2 algorithm.
CritSec - Wrapper class around a critical section (Windows only).
Diagnostic - Diagnostic assert messages to aid in debugging.
DoubleNullStr - A string class for double null-terminated strings.
Errors - Common error codes so as to avoid platform-specific error codes.
Event - An event object for efficient multi-threaded synchronization, most useful for MacOS and Linux which lack an event kernel object as is found on Windows.
ExceptionUtils - Functions to create crash dump files to aid in postmortem crash analysis.
FilePath - An extremely useful class to build, parse, and analyze file and folder paths.
FilePathConverter - A class to resolve path variables and kernel path names into standard paths (Windows only).
FilePathUtils - Useful path functions to obtain common folder locations, as well as canonicalize (simplify) paths.
FileSystemUtils - Functions to create, enumerate, delete, and obtain info about file system objects.
FileTraverse - A class to efficiently traverse one or more folders, useful when enumerating file system objects or searching for files/folders.
Fuzz - Functions to facilitate fuzz testing.
Impersonator - A class to impersonate another logged on user given their session number (Windows only). Can only be called from a service or process running in session 0.
IniFile - A class to read, edit, or create Windows INI files.
IPv6 - A utility class for IPv6 addresses, useful to easily convert between binary and string representations.
Mac - A utility class for network MAC addresses, useful to easily convert between binary and string representations.
MemBuffer - A wrapper class around a raw block of memory, useful for storing one or more strings, integers, floats, and raw buffers.
MemoryHelper - A class that calls an undocumented function to obtain a process' private working set size (Windows only).
MemStream - A wrapper class around a raw block of memory similar to MemBuffer, but designed to be easily streamed.
NetUtils - Useful network utilities including IPv4 conversions, downloading files, obtaining the public IP address, and more.
Object - A wrapper class for MacOS CoreFountation object, to ensure proper release (MacOS only).
PlatformUtils - Some platform-specific utilities including COM and SIDs on Windows as well as IO registry and Sysctl on MacOS.
PowerUtils - Utilities that gather power related info such as battery versus mains power and laptop lid state (opened/closed).
PrivilegeManager - A class to manage granting/revoking of process privileges such as "SE_TCB_NAME" (Windows only).
ProcessUtils - Process utilities such as spawning a new process and obtaining any process' filename or command line.
RandUtils - Wrapper class around the C++ random library functions. Easily generate non-cryptographically-secure random numbers.
RegexUtils - Wrapper class around the C++ regex library functions. More easily perform regex comparisons and matches.
RegKey - A class for reading, writing, creating, and deleting Windows registry keys (Windows only).
RegPath - An extremely useful class to build, parse, and analyze registry paths (Windows only).
SrwLock - A wrapper class for slim reader/writer (SRW) locks (Windows only).
StlHelper - Helper classes for using CoreLib objects with C++ STL
Str - An extremely useful string class. Has very useful capabilities such as formatting without printf; case-insensitive comparison; and automatic conversion between UTF8, wide characters, and UTF16.
StrUtils - Standalone string functions useful when manipulating null-terminated C strings.
TextFile - A class for reading, creating, and modifying text files (UTF8, UTF16, and wide characters).
Thread - A wrapper class for cross-platform thread use, including automatic converting unhandled exceptions into crash dump files for analysis.
ThreadUtils - A function to obtain a thread ID (TID) for a given C++ thread object.
TimeUtils - Functions to convert between many different common time formats as well as UTC <-> local time conversions.
Url - An very useful class to build, parse, and analyze URLs.
UrlUtils - Functions to encode and decode URL strings.
WhitespaceParser - A class to parse strings into tokens using whitespace as the delimiter.
Wmi - A class for interacting with WMI objects (Windows only).
WtsUtils - Wrapper functions for some common Windows Terminal Services APIs (Windows only).