- Alternative to boost and poco for small projects
- Simple and clean functions, classes and libraries for specific task
- Cross platform/os: needs to run on Linux, Mac and Windows
- Each of them can be used by simply copiing them to your code.
- Liberal licence, commercial friendly: only zlib / bsd / mit or public domain licence.
- Allow multple implementations for same taks: nobody is perfect.
- Usually only stl as dependency. in special cases 3rd party dependencies are needed / allowed.
- Missing functionality should be implemented by the community
- Alternatively search here: Awesome C++ or here cppreference
- pybind11
- Seamless operability between C++11 and Python
- cpgf
- free C++ open source library for reflection, serialization, script binding, callbacks
- picobench
- A micro microbenchmarking library for C++11 in a single header file
- spdlog
- Super fast C++ logging library
- AixLog
- Header-only C++ logging library
- nanomsg
- nanomsg is a socket library that provides several common communication patterns. It aims to make the networking layer fast, scalable, and easy to use. Implemented in C, it works on a wide range of operating systems with no further dependencies.
- msgpack
- MessagePack is an efficient binary serialization format.
- protocol-bufffers
- Protocol buffers are Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data – think XML, but smaller, faster, and simpler.
- enet
- ENet's purpose is to provide a relatively thin, simple and robust network communication layer on top of UDP (User Datagram Protocol).The primary feature it provides is optional reliable, in-order delivery of packets.
- libevent
- The libevent API provides a mechanism to execute a callback function when a specific event occurs on a file descriptor or after a timeout has been reached. Furthermore, libevent also support callbacks due to signals or regular timeouts.
- libuv
- libuv is a multi-platform support library with a focus on asynchronous I/O.
- Cap’n Proto
- Insanely fast data interchange format and capability-based RPC system
- mtrand
- C++ port of the famous Mersenne Twister pseudo-random number generator
- mersenne-twister
- This Mersenne Twister is a fast pseudo-random number generator (PRNG) in C++. C rand replacement
- SafeInt
- SafeInt is a C++ header containing the SafeInt class, non-throwing functions to check common operations, and the associated internal mechanisms.
- utf8-cpp
- UTF-8 with C++ in a Portable Way
- ustl
- The C++ standard template library (STL) is a collection of common containers and algorithms in template form
- stb
- stb single-file public domain libraries for C/C++
- strtk
- robust, optimized and portable generic string processing algorithms and procedures for the C++ language
- zthread
- Clean and feature complete threading library. Although it is not maintained anymore it is stable and very useful.
- tinythread
- C++0x compatible basic threading api
- Threading Building Blocks
- Intel® Threading Building Blocks (Intel® TBB) lets you easily write parallel C++ programs that take full advantage of multicore performance, that are portable and composable, and that have future-proof scalability.
- Theron
- lightweight C++ concurrency library based on the Actor Model.
- zlib
- THE compression library
- fastlz
- faster than zlib, but not as good compression ratio. Very easy to embed.
- snappy
- fastest, but not as good compression ratio
- blocs
- an extremely fast, multi-threaded, meta-compressor library
- Zstandard
- real-time compression algorithm, providing high compression ratios
- zstream-cpp
- iostream wrappers for the zlib library
- exprtk
- simple to use, easy to integrate and extremely efficient run-time mathematical expression parsing and evaluation engine
- muparser
- Fast Math Parser Library
- cereal
- A C++11 library for serialization
- pugixml
- pugixml is a light-weight C++ XML processing library.
- rapidxml
- in-situ parser written in modern C++
- asmxml
- XML parser and decoder for x86 platforms
- SimpleJSON
- SimpleJSON is a simple JSON library written in C++. It is designed to be simple to use and be cross platform.
- SuperEasyJSON
- A super easy to use, platform-independent C++ JSON library with no dependencies beyond the standard libraries, no annoying make files, no installation of any other software needed.
- sigslot
- C++ Signal/Slot Library
- CppEvent
- Event/delegate (signal/slot) mechanism implementation for C++
- FastDelegate
- Member Function Pointers and the Fastest Possible C++ Delegates
- MurmurHash
- extremely well performing hash function
- smallsha1
- very small sha1 library
- google-sparsehash
- optimized hash maps for speed or size
- TommyDS
- TommyDS is a C library of hashtables and tries designed to store and find objects with high performance.
- yasper
- Yet Another Smart Pointer Library
- CLI11
- Command line parser for C++11
- cola
- A single header only Command Line Argument parser.
- optparse
- Python style parsing
- TCLAP
- small, flexible library that provides a simple interface for defining and accessing command line arguments
- optionparser
- The Lean Mean C++ Option Parser
- anyoption
- C/C++ Command line and resource file option parsing
- gflags
- The gflags package contains a library that implements commandline flags processing. As such it's a replacement for getopt(). It has increased flexibility, including built-in support for C++ types like string, and the ability to define flags in the source file in which they're used.
- rang
- A Minimal, Header only Modern c++ library for terminal goodies
- clucene
- CLucene is a high-performance, scalable, cross platform, full-featured, open-source indexing and searching API.
- libspatialindex
- Complex spatial index library
- RTree
- Straight forward RTRee implementation
- nanoflann
- a C++ header-only library for Nearest Neighbor (NN) search wih KD-trees
- marching cube
- marching cube implementation
- OpenMesh
- A generic and efficient polygon mesh data structure
- lmfit
- A self-contained C library for Levenberg-Marquardt least-squares minimization and curve fitting.
- ssemath
- Simple SSE and SSE2 (and now NEON) optimized sin, cos, log and exp
- ffts
- The Fastest Fourier Transform in the South http://anthonix.com/ffts
- tiny-cnn
- A header-only, dependency-free deep learning framework for C++11
- picotest
- Single-header unit testing framework, subset of googletest
- doctest
- The fastest feature-rich C++98/C++11 single-header testing framework for unit tests and TDD
- asmjit
- complete JIT and remote assembler for C++ language
- lexertk
- simple to use, easy to integrate and extremely fast lexicographical generator
- Elkhound and Elsa
- Elkhound: A GLR Parser Generator and Elsa: An Elkhound-based C++ Parser
- inja
- A Template Engine for Modern C++
- Jinja2CppLight
- (very) lightweight version of Jinja2 for C++
- NLTemplate
- Simple HTML template library for C++
- crow
- Crow is very fast and easy to use C++ micro web framework (inspired by Python Flask)
- Pistache
- An elegant C++ REST framework.
- NLTemplate
- Simple HTML template library for C++
- inja
- A Template Engine for Modern C++
- tweeny
- Tweeny is an inbetweening library designed for the creation of complex animations for games and other beautiful interactive software.
- EntityX
- A fast, type-safe C++ Entity-Component system
- EnTT
- Gaming meets modern C++ - a fast and reliable entity-component system (ECS) and much more
- ChaiScript
- an easy to use embedded scripting language for C++.
- Squirrel
- a high level imperative, object-oriented programming language, designed to be a light-weight scripting language that fits in the size, memory bandwidth, and real-time requirements of applications like video games.
- LuaJit
- a Just-In-Time Compiler (JIT) for the Lua programming language. Lua is a powerful, dynamic and light-weight programming language. It may be embedded or used as a general-purpose, stand-alone language.
- Duktape
- an embeddable Javascript engine, with a focus on portability and compact footprint.