cpp_swiss_army_knife icon indicating copy to clipboard operation
cpp_swiss_army_knife copied to clipboard

A collection of nice and tiny C++ libraries

CPP Swiss Armyknife

A collection of nice and tiny C++ libraries. The main focus is speed, few or no dependencies and header only when possible.

Algorithms

library description
pdqsort std::sort replacement

Compression

library description
LZ4 Fast compression

Concurrency

library description
concurrentqueue Concurrent lock-free queue
Thread Pool Simple thread Pool

Data structures

library description
Rea SlotsLists
PLF Colony Cache friendly container with fast insertion and remove.
Sparcepp Hash map alternative

Debug

library description
dbgtools Assert, backtrace, callstack
Boost::Stacktrace Stacktrace visualization
backward-cpp Stacktrace visualization

Logging

library description
spdlog Fast logging library

Math

library description
FastTrigo Fast trigonometric functions

Memory

library description
Memory STL compatible allocator

Miscellaneus

library description
Type safe Wrappers for type safety
Any Any with small object optimization
SSO-23 String with small object optimization
Observable observable Pattern (Signal-Slot)
[NanoRange](https://github.com/tcbrindle/NanoRange= Like Range-V3...
Constexpr Many common functions implemented as constexpr

Parser

library description
sajson Header only JSON parser (c++11)

Profiling

library description
Remotery Intrusive profiling
EasyProfiler Another intrusive profiler

Unit Testing

library description
Catch Header only testing framework

State Machine

library description
Boost::SML C++14 State Machine Library

Task Scheduler / multi-threading

library description
enkiTS Task Scheduler
px_sched Single header Task Scheduler
STLab std::future done right
cpp-taskflow Task based parallelism
marl Scheduler with thread and fivers