C++ Containers

Open-source C++ projects categorized as Containers

Top 23 C++ Container Projects

  • pybind11

    Seamless operability between C++11 and Python

    Project mention: Using pybind11 with minGW to cross compile pyhton module for Windows | reddit.com/r/cpp_questions | 2023-01-17

    I have a python module for which the logic is written in C++ and I use pybind11 to expose the objects and functions to Python.

  • redpanda

    Redpanda is a streaming data platform for developers. Kafka API compatible. 10x faster. No ZooKeeper. No JVM!

    Project mention: Horizontally scaling Kafka consumers with rendezvous hashing | dev.to | 2023-01-24

    The native Kafka connector included with Tinybird lets you connect to a Kafka cluster, whether that’s a self-hosted Apache Kafka instance or any one of the hosted/self-hosted variants out there (Confluent, Redpanda, Upstash, etc.).

  • InfluxDB

    Build time-series-based applications quickly and at scale.. InfluxDB is the Time Series Platform where developers build real-time applications for analytics, IoT and cloud-native services. Easy to start, it is available in the cloud or on-premises.

  • falco

    Cloud Native Runtime Security

    Project mention: Opensource IDS for Kubernetes?? | reddit.com/r/kubernetes | 2022-12-16
  • service-fabric

    Service Fabric is a distributed systems platform for packaging, deploying, and managing stateless and stateful distributed applications and containers at large scale.

    Project mention: Potential employer uses Service Fabric | reddit.com/r/dotnet | 2022-02-19

    Proprietary in what way?

  • libcds

    A C++ library of Concurrent Data Structures

  • FunctionalPlus

    Functional Programming Library for C++. Write concise and readable C++ code.

    Project mention: C++ algorithm helpers - kdalgorithms | reddit.com/r/cpp | 2022-12-10

    You can get a feel for it on its api search site: as an example, enter these queries:

  • PEGTL

    Parsing Expression Grammar Template Library

    Project mention: Use PEGTL to remove my clunky homemade parser | dev.to | 2023-01-30

    I found a library I wanted to test: Pegtl

  • Sonar

    Write Clean C++ Code. Always.. Sonar helps you commit clean C++ code every time. With over 550 unique rules to find C++ bugs, code smells & vulnerabilities, Sonar finds the issues while you focus on the work.

  • etl

    Embedded Template Library

    Project mention: What programming language should I pick up as a senior developer ? | reddit.com/r/webdev | 2023-01-29

    STL containers use dynamic memory allocation which is often a no-no in embedded contexts. there is the ETL https://www.etlcpp.com/ but I haven't used it!

  • sparsehash

    C++ associative containers

  • sparsepp

    A fast, memory efficient hash map for C++

    Project mention: Updating map_benchmarks: Send your hashmaps! | reddit.com/r/cpp | 2022-06-16

    Also, I'm testing https://github.com/greg7mdp/sparsepp which is based on google's sparsehash

  • Hopscotch map

    C++ implementation of a fast hash map and hash set using hopscotch hashing

    Project mention: boost::unordered map is a new king of data structures | reddit.com/r/cpp | 2022-06-30

    Unordered hash map shootout CMAP = https://github.com/tylov/STC KMAP = https://github.com/attractivechaos/klib PMAP = https://github.com/greg7mdp/parallel-hashmap FMAP = https://github.com/skarupke/flat_hash_map RMAP = https://github.com/martinus/robin-hood-hashing HMAP = https://github.com/Tessil/hopscotch-map TMAP = https://github.com/Tessil/robin-map UMAP = std::unordered_map Usage: shootout [n-million=40 key-bits=25] Random keys are in range [0, 2^25). Seed = 1656617916: T1: Insert/update random keys: KMAP: time: 1.949, size: 15064129, buckets: 33554432, sum: 165525449561381 CMAP: time: 1.649, size: 15064129, buckets: 22145833, sum: 165525449561381 PMAP: time: 2.434, size: 15064129, buckets: 33554431, sum: 165525449561381 FMAP: time: 2.112, size: 15064129, buckets: 33554432, sum: 165525449561381 RMAP: time: 1.708, size: 15064129, buckets: 33554431, sum: 165525449561381 HMAP: time: 2.054, size: 15064129, buckets: 33554432, sum: 165525449561381 TMAP: time: 1.645, size: 15064129, buckets: 33554432, sum: 165525449561381 UMAP: time: 6.313, size: 15064129, buckets: 31160981, sum: 165525449561381 T2: Insert sequential keys, then remove them in same order: KMAP: time: 1.173, size: 0, buckets: 33554432, erased 20000000 CMAP: time: 1.651, size: 0, buckets: 33218751, erased 20000000 PMAP: time: 3.840, size: 0, buckets: 33554431, erased 20000000 FMAP: time: 1.722, size: 0, buckets: 33554432, erased 20000000 RMAP: time: 2.359, size: 0, buckets: 33554431, erased 20000000 HMAP: time: 0.849, size: 0, buckets: 33554432, erased 20000000 TMAP: time: 0.660, size: 0, buckets: 33554432, erased 20000000 UMAP: time: 2.138, size: 0, buckets: 31160981, erased 20000000 T3: Remove random keys: KMAP: time: 1.973, size: 0, buckets: 33554432, erased 23367671 CMAP: time: 2.020, size: 0, buckets: 33218751, erased 23367671 PMAP: time: 2.940, size: 0, buckets: 33554431, erased 23367671 FMAP: time: 1.147, size: 0, buckets: 33554432, erased 23367671 RMAP: time: 1.941, size: 0, buckets: 33554431, erased 23367671 HMAP: time: 1.135, size: 0, buckets: 33554432, erased 23367671 TMAP: time: 1.064, size: 0, buckets: 33554432, erased 23367671 UMAP: time: 5.632, size: 0, buckets: 31160981, erased 23367671 T4: Iterate random keys: KMAP: time: 0.748, size: 23367671, buckets: 33554432, repeats: 8, sum: 4465059465719680 CMAP: time: 0.627, size: 23367671, buckets: 33218751, repeats: 8, sum: 4465059465719680 PMAP: time: 0.680, size: 23367671, buckets: 33554431, repeats: 8, sum: 4465059465719680 FMAP: time: 0.735, size: 23367671, buckets: 33554432, repeats: 8, sum: 4465059465719680 RMAP: time: 0.464, size: 23367671, buckets: 33554431, repeats: 8, sum: 4465059465719680 HMAP: time: 0.719, size: 23367671, buckets: 33554432, repeats: 8, sum: 4465059465719680 TMAP: time: 0.662, size: 23367671, buckets: 33554432, repeats: 8, sum: 4465059465719680 UMAP: time: 6.168, size: 23367671, buckets: 31160981, repeats: 8, sum: 4465059465719680 T5: Lookup random keys: KMAP: time: 0.943, size: 23367671, buckets: 33554432, lookups: 34235332, found: 29040438 CMAP: time: 0.863, size: 23367671, buckets: 33218751, lookups: 34235332, found: 29040438 PMAP: time: 1.635, size: 23367671, buckets: 33554431, lookups: 34235332, found: 29040438 FMAP: time: 0.969, size: 23367671, buckets: 33554432, lookups: 34235332, found: 29040438 RMAP: time: 1.705, size: 23367671, buckets: 33554431, lookups: 34235332, found: 29040438 HMAP: time: 0.712, size: 23367671, buckets: 33554432, lookups: 34235332, found: 29040438 TMAP: time: 0.584, size: 23367671, buckets: 33554432, lookups: 34235332, found: 29040438 UMAP: time: 1.974, size: 23367671, buckets: 31160981, lookups: 34235332, found: 29040438

  • function2

    Improved and configurable drop-in replacement to std::function that supports move only types, multiple overloads and more

    Project mention: Scriptable Headless Player Bots and independent ECS in a Custom UE C++ Server for MMO(RPG)s. | reddit.com/r/unrealengine | 2022-10-10
  • sparsehash-c11

    Experimental C++11 version of sparsehash

  • LSHBOX

    A c++ toolbox of locality-sensitive hashing (LSH), provides several popular LSH algorithms, also support python and matlab.

  • Hashmaps

    Various open addressing hashmap algorithms in C++ (by goossaert)

  • semver

    Semantic Versioning for modern C++ (by Neargye)

  • dynamic_bitset

    Simple Useful Libraries: C++17/20 header-only dynamic bitset

  • sarus

    OCI-compatible engine to deploy Linux containers on HPC environments.

    Project mention: Sarus VS Podman: comparison of both technologies | reddit.com/r/podman | 2022-06-25

    Sarus is An OCI-compatible container engine for HPC: https://sarus.readthedocs.io/en/stable/. At this point of view, it is very similar to use case of Podman.

  • small

    C++ small containers (by alandefreitas)

  • Stroika

    Stroika is a rich, modern, portable, thread-savvy C++ application framework.

    Project mention: Collecting the best C++ practices | dev.to | 2023-01-13

    Stroika is a modern, portable, thread-savvy, C++ application framework. It makes writing high performance C++ applications easier by providing safe, flexible, modular building blocks.

  • gtl

    Greg's Template Library of useful classes.

    Project mention: Boost 1.81 will have boost::unordered_flat_map... | reddit.com/r/cpp | 2022-10-31

    I do this as well in my phmap and gtl implementations. It makes the tables look worse in benchmarks like the above, but prevents really bad surprises occasionally.

  • flat_map

    Header only associative linear container.

  • Virtualization-Emulation-Guide

    Virtualization/Emulation Guide

    Project mention: Useful Virtualization/Emulation Guide | reddit.com/r/virtualization | 2022-04-17

    I found a useful Virtualization/Emulation Guide. It has sections on Learning Resources, Virtualization tools, Emulation Tools, Filesystems, Networking, Kubernetes, and Docker. I thought I'd share for anyone that's interested.

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2023-01-30.

C++ Containers related posts

Index

What are some of the best open-source Container projects in C++? This list will help you:

Project Stars
1 pybind11 12,133
2 redpanda 6,029
3 falco 5,563
4 service-fabric 2,953
5 libcds 2,239
6 FunctionalPlus 1,752
7 PEGTL 1,654
8 etl 1,489
9 sparsehash 1,396
10 sparsepp 1,161
11 Hopscotch map 582
12 function2 430
13 sparsehash-c11 271
14 LSHBOX 265
15 Hashmaps 247
16 semver 211
17 dynamic_bitset 120
18 sarus 96
19 small 92
20 Stroika 76
21 gtl 46
22 flat_map 24
23 Virtualization-Emulation-Guide 17
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com