This is the initial release for substrate.
Included in this release are:
- Utility headers for backporting C++14, 17 and some 20 features to older C++ versions;
- RAII wrappers for file descriptors, sockets, memory maps, PTYs (Linux only), and pipes;
- Type-safe formatted console IO interface with integrated log level system;
- Threading primitives such as a thread-safe queue, and thread pool implementation;
- OS-agnostic thread affinity helpers;
- Types for performing
zip()
on containers, iterating over a numerical range (indexSequence_t), and iterating over a container in the style ofenumerate()
(indexedIterator_t); - Command line options representation and parser;
- Concurrency types for rwlocks, latches, barriers, and helpers for getting the current thread ID and number of CPUs available platform-agnostic;
- Bit manipulation helpers;
- Packed integer encoders/decoders such as for LEB128;
- Helpers for handling integer promotion problems;
- Implementations of hashing/checking algorithms such as murmur128 and CRC32;
- Types for representing packed boolean flags and bitwise flags fields;
- Types for implementing smart bitfields;
- Implementations of the cryptographic functions SHA256/512, and Twofish;
- Various PRNG implementations;