Skip to content

ortfero/awesomecpp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 

Repository files navigation

awesomecpp

Awesome C++ Libraries

Other lists

  • awesome-hpp -- A curated list of awesome header-only C++ libraries.
  • awesome-cpp -- A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things.

Audio

  • miniaudio -- A single file audio playback and capture library.

Compression

  • LZ4 -- Extremely fast compression.

Concurrency

  • cpp-threadpool -- C++11 header-only thread pool library.
  • Disruptor++ -- disruptor thread-synchronisation data structure for C++11.
  • fuss -- efficient in-process pub/sub pattern for C++.
  • laugh -- laughably simple yet effective actor concurrency framework for C++20.
  • libfev -- library for events and fibers.
  • libunifex -- prototype implementation of the C++ sender/receiver async programming model that is currently being considered for standardisation.
  • hpx -- the C++ Standard Library for Parallelism and Concurrency.
  • moodycamel::ConcurrentQueue -- fast multi-producer, multi-consumer lock-free concurrent queue for C++11.
  • SObjectizer -- implementation of Actor, Publish-Subscribe, and CSP models in one rather small C++ framework.
  • stlab -- library provides futures and channels, high level constructs for implementing algorithms that eases the use of multiple CPU cores while minimizing contention.
  • xenium -- library providing various concurrent data structures and reclamation schemes.

Configuration

  • taocpp/config -- header-only library that reads config files based on JSON and JAXN and produces a single JSON Value as result.
  • Tortellini -- ini file reader and writer for C++11 and above.
  • confetti -- C++17 one-header library to parse ini files with toml extensions.

Console

  • flags -- Simple, extensible, header-only C++17 argument parser released into the public domain.
  • Lyra -- A simple to use, composing, header only, command line arguments parser for C++ 11 and beyond.
  • oof -- Convenient, high-performance RGB color and position control for console output.
  • xtd -- modern C++17 / C++20 framework to create console, forms (GUI like WinForms) and unit test applications on Microsoft Windows, Apple macOS and Linux

Containers and Algorithms

  • array -- contiguous container library - arrays with customizable allocation, small buffer optimization and more.
  • BTree -- a general-purpose high-performance lightweight STL-like modern C++ B-Tree.
  • cppitertools -- implementation of python itertools and builtin iteration functions for C++17.
  • flecs -- fast and lightweight Entity Component System with a focus on high performance game development.
  • FunctionalPlus -- functional programming library for C++.
  • Little Type Library -- lightweight library that can be used for meta programming and / or functional programming.
  • memory -- STL compatible C++ memory allocator library using a new RawAllocator concept that is similar to an Allocator but easier to use and write.
  • NanoRange -- C++17 implementation of the C++20 Ranges proposals.
  • pdqsort -- pattern-defeating quicksort (pdqsort) is a novel sorting algorithm that combines the fast average case of randomized quicksort with the fast worst case of heapsort, while achieving linear time on inputs with certain patterns.
  • plf_hive -- plf::hive is a fork of plf::colony to match the current C++ standards proposal.
  • recursive-variant -- a simple library for recursive variant types.
  • robin-hood-hashin -- platform independent replacement for std::unordered_map / std::unordered_set which is both faster and more memory efficient for real-world use cases.
  • static_vector -- dynamically-resizable vector with fixed capacity and embedded storage.
  • taocpp/operators -- zero-dependency C++11 single-header library that provides highly efficient, move aware operators for arithmetic data types.
  • taocpp/sequences -- zero-dependency C++11 header-only library that provides efficient algorithms to generate and work on variadic templates and std::integer_sequence.
  • tiny::optional -- replacement for std::optional that does not unnecessarily waste memory.
  • type_safe -- zero overhead utilities for preventing bugs at compile time.
  • vapid-soa -- a header only structure of arrays container for C++.

File Formats

  • glaze -- extremely fast, in memory, JSON and interface library for modern C++.
  • DAW JSON Link -- static JSON parsing in C++.
  • json.h -- single header json parser for C and C++.
  • lazycsv -- fast, lightweight and single-header c++ csv parser library.
  • RapidJSON -- fast JSON parser/generator for C++ with both SAX/DOM style API.
  • simdjson -- parsing gigabytes of JSON per second.
  • yyjson -- the fastest C JSON library.

Database

File Managment

  • TinyDir -- lightweight, portable and easy to integrate C directory and file reader.
  • cpp-mmaplib -- C++11 header-only memory mapped file library.
  • glob -- glob for C++17.

Graphics

  • The Forge -- cross-platform rendering framework.
  • Godot -- multi-platform 2D and 3D game engine.
  • HibFonts -- manuscript based ASCII font for Open GL ES 2.0.
  • libschrift -- a lightweight TrueType font rendering library.
  • LLGL -- thin abstraction layer for the modern graphics APIs OpenGL, Direct3D, Vulkan, and Metal.
  • lunasvg -- standalone c++ library to create, animate, manipulate and render SVG files.
  • Matplot++ -- graphics library for data visualization.
  • PlutoVG -- standalone 2D vector graphics library in C.
  • raylib -- simple and easy-to-use library to enjoy videogames programming.
  • Sokol -- minimal cross-platform standalone C headers.
  • WUHOO -- single-header library for graphics related window management, compatible with both C and C++.

Logging

  • lwlog -- very fast synchronous C++17 logging library.
  • spdlog -- fast C++ logging library.
  • reckless -- Low-latency, high-throughput, asynchronous logging library for C++.
  • Quill -- cross-platform low latency logging library based on C++14.

Math

  • FastTrigo -- fast yet accurate trigonometric functions.
  • vmath -- C++17 tiny vector math library.
  • fixed_math -- fixed point 48.16 bit arithmetic type.
  • eve -- expressive velocity engine.

Network

  • Asio -- Asio C++ Library.
  • ZeroMQ -- library which extends the standard socket interfaces with features traditionally provided by specialised messaging middleware products.
  • nanomsg-next-gen -- lightweight, broker-less library, offering a simple API to solve common recurring messaging problems, such as publish/subscribe, RPC-style request/reply, or service discovery.
  • FlatBuffers -- memory efficient serialization library.
  • zpp::bits -- lightweight C++20 serialization and RPC library.

Process Managment

  • subprocess.h -- single header process launching solution for C and C++.
  • subprocess -- a C++ high level library for running shell processes.

Profiling

  • easy_profiler -- lightweight profiler library for C++.
  • picobench -- tiny microbenchmarking library in a single header file.
  • precision -- microbenchmarking library for C++17 and above.

Rest protocol

  • cpprouter -- modern, header-only request router for C++.
  • cpp-httplib -- C++11 single-file header-only cross platform HTTP/HTTPS library.
  • jwt-cpp -- header only library for creating and validating json web tokens in C++.
  • kleinsHTTP -- a stupid stupidly simple http server.
  • PicoHTTPParser -- tiny HTTP parser written in C.
  • restbed -- Corvusoft's Restbed framework brings asynchronous RESTful functionality to C++14 applications.
  • RESTCpp -- cross platform multi threaded REST API framework using thread-pooling implementation with modern C++.
  • via-httplib -- a library for embedding an HTTP or HTTPS server in C++ applications.
  • wfrest -- C++ web framework REST API.

Scheduling

  • concurrencpp -- tasks, executors, timers and C++20 coroutines to rule them all.
  • periodic-function -- small header only library to call a function at a specific time interval.
  • SCoro -- a stackless, resumable, resettable state machine style coroutine library for C++17.
  • timetable -- C++17 one-header library to invoke something periodically or at the specified time.

Scripts

  • Elk -- tiny JS engine for embedded systems.
  • Gravity -- gravity programming language.
  • lauf -- bytecode interpreter.
  • Monkey -- C++ version monkey language interpreter.
  • PL/0 JIT compiler -- tiny PL/0 JIT compiler in less than 700 LOC with LLVM and PEG parser.
  • QuickJS -- QuickJS Javascript Engine.

Storage

  • RocksDB -- persistent key-value store for flash and RAM storage.

Tests

  • doctest -- the fastest feature-rich C++11/14/17/20 single-header testing framework.
  • snatch -- lightweight C++20 testing framework.

Text Handling

  • cpp-peglib -- C++17 header-only PEG (Parsing Expression Grammars) library.
  • ezpz -- easy parsing C++ library.
  • lexy -- C++ parsing DSL.
  • libfmt -- a modern formatting library.
  • htmlparser -- Fast and lightweight HTML parser.
  • scnlib -- scanf for modern C++

UI

  • Dear ImGui -- bloat-free Graphical User interface for C++ with minimal dependencies.
  • Elements -- lightweight, fine-grained, resolution independent, modular GUI library.
  • hikogui -- modern accelerated GUI.
  • Neutralinojs -- portable and lightweight cross platform app development framework.
  • microui -- tiny, portable, immediate-mode UI library written in ANSI C.
  • raygui -- simple and easy-to-use immediate-mode gui library.

Unicode

  • cpp-unicodelib -- C++17 single-file header-only Unicode library.
  • utf8.h -- single header utf8 string functions for C and C++.

About

Awesome C++ Libraries

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published