Browse free open source C++ Libraries and projects below. Use the toggles on the left to filter open source C++ Libraries by OS, license, language, programming language, and project status.

  • MongoDB Atlas runs apps anywhere Icon
    MongoDB Atlas runs apps anywhere

    Deploy in 115+ regions with the modern database for every enterprise.

    MongoDB Atlas gives you the freedom to build and run modern applications anywhere—across AWS, Azure, and Google Cloud. With global availability in over 115 regions, Atlas lets you deploy close to your users, meet compliance needs, and scale with confidence across any geography.
    Start Free
  • $300 in Free Credit Towards Top Cloud Services Icon
    $300 in Free Credit Towards Top Cloud Services

    Build VMs, containers, AI, databases, storage—all in one place.

    Start your project in minutes. After credits run out, 20+ products include free monthly usage. Only pay when you're ready to scale.
    Get Started
  • 1
    TX Library

    TX Library

    TX Library is a tiny graphics library for Win32 written in C++.

    TX Library is a tiny graphics library for Win32 written in C++. It is a small sandbox for the very beginners to help them to learn basic programming principles. The documentation is currently in Russian. More info here: http://storage.ded32.net.ru/Lib/TX/TXUpdate/Doc/HTML.ru, http://ded32.net.ru/news/2011-04-03-58, http://ded32.net.ru.
    Leader badge
    Downloads: 23 This Week
    Last Update:
    See Project
  • 2
    ArduinoJson

    ArduinoJson

    JSON library for Arduino and embedded C++. Simple and efficient

    ArduinoJson is a C++ JSON library for Arduino and IoT (Internet Of Things). ArduinoJson has a simple and intuitive syntax to handle objects and arrays. ArduinoJson supports both JSON serialization and deserialization. ArduinoJson uses a fixed memory allocation, allowing to work on devices with very little RAM. ArduinoJson can filter large inputs to keep only fields that are relevant to your application, thereby saving a lot of memory. ArduinoJson can parse directly from an input Stream or std::istream. ArduinoJson can produce compact or prettified documents. ArduinoJson works directly with strings stored in program memory. ArduinoJson supports two coding styles, with implicit or explicit casts. ArduinoJson deduplicates strings in the JSON document. When you have several identical keys or values, the JsonDocument only stores one of each. In practice, this feature reduces memory consumption by 20-30%.
    Downloads: 3 This Week
    Last Update:
    See Project
  • 3
    CasADi

    CasADi

    CasADi is a symbolic framework for numeric optimization

    CasADi is a symbolic framework for numeric optimization implementing automatic differentiation in forward and reverse modes on sparse matrix-valued computational graphs. It supports self-contained C-code generation and interfaces state-of-the-art codes such as SUNDIALS, IPOPT, etc. It can be used in C++, Python, or Matlab/Octave. CasADi's backbone is a symbolic framework implementing forward and reverse modes of AD on expression graphs to construct gradients, large-and-sparse Jacobians, and Hessians. These expression graphs, encapsulated in Function objects, can be evaluated in a virtual machine or exported to stand-alone C code. Initial value problems in ordinary or differential-algebraic equations (ODE/DAE) can be calculated using explicit or implicit Runge-Kutta methods or interfaces to IDAS/CVODES from the SUNDIALS suite. Derivatives are calculated using sensitivity equations, up to arbitrary order.
    Downloads: 3 This Week
    Last Update:
    See Project
  • 4
    Clipboard

    Clipboard

    Your new smart clipboard manager

    Your second brain that remembers anything, anytime, anywhere. The Clipboard Project (CB for short) is the oh-so-awesome clipboard manager that's just like a second brain. It's fast and lightweight, feature-packed, and super user-friendly. Anyone can use CB - no matter who you are or what you're working on, from web developers to your Average Joe and even to your grandma. Nothing dares lay more than a few button presses away. We've packed, crammed, and jammed CB full of useful features to increase your productivity in the most effective way possible. Make infinitely different clipboards, manipulate them with full-fat regex, instantly script them all, and way more.
    Downloads: 3 This Week
    Last Update:
    See Project
  • Forever Free Full-Stack Observability | Grafana Cloud Icon
    Forever Free Full-Stack Observability | Grafana Cloud

    Our generous forever free tier includes the full platform, including the AI Assistant, for 3 users with 10k metrics, 50GB logs, and 50GB traces.

    Built on open standards like Prometheus and OpenTelemetry, Grafana Cloud includes Kubernetes Monitoring, Application Observability, Incident Response, plus the AI-powered Grafana Assistant. Get started with our generous free tier today.
    Create free account
  • 5
    Effil

    Effil

    Multithreading support for Lua

    Effil is a multithreading library for Lua. It allows the spawn of native threads and safe data exchange. Effil has been designed to provide a clear and simple API for Lua developers. Effil supports Lua 5.1, 5.2, 5.3, and LuaJIT. Requires C++14 compiler compliance. Tested with GCC 4.9+, clang 3.8, and Visual Studio 2015.
    Downloads: 3 This Week
    Last Update:
    See Project
  • 6
    RocksDB

    RocksDB

    A library with an embeddable, persistent key-value store for storage

    RocksDB uses a log structured database engine, written entirely in C++, for maximum performance. Keys and values are just arbitrarily-sized byte streams. RocksDB is optimized for fast, low latency storage such as flash drives and high-speed disk drives. RocksDB exploits the full potential of high read/write rates offered by flash or RAM. RocksDB is adaptable to different workloads. From database storage engines such as MyRocks to application data caching to embedded workloads, RocksDB can be used for a variety of data needs. RocksDB provides basic operations such as opening and closing a database, reading and writing to more advanced operations such as merging and compaction filters.
    Downloads: 3 This Week
    Last Update:
    See Project
  • 7
    Simple-WebSocket-Server

    Simple-WebSocket-Server

    WebSocket (WS) and WebSocket Secure (WSS) server and client library

    A very simple, fast, multithreaded, platform-independent WebSocket (WS) and WebSocket Secure (WSS) server and client library implemented using C++11, Asio (both Boost.Asio and standalone Asio can be used) and OpenSSL. Created to be an easy way to make WebSocket endpoints in C++.
    Downloads: 3 This Week
    Last Update:
    See Project
  • 8
    XNNPACK

    XNNPACK

    High-efficiency floating-point neural network inference operators

    XNNPACK is a highly optimized, low-level neural network inference library developed by Google for accelerating deep learning workloads across a variety of hardware architectures, including ARM, x86, WebAssembly, and RISC-V. Rather than serving as a standalone ML framework, XNNPACK provides high-performance computational primitives—such as convolutions, pooling, activation functions, and arithmetic operations—that are integrated into higher-level frameworks like TensorFlow Lite, PyTorch Mobile, ONNX Runtime, TensorFlow.js, and MediaPipe. The library is written in C/C++ and designed for maximum portability, efficiency, and performance, leveraging platform-specific instruction sets (e.g., NEON, AVX, SIMD) for optimized execution. It supports NHWC tensor layouts and allows flexible striding along the channel dimension to efficiently handle channel-split and concatenation operations without additional cost.
    Downloads: 3 This Week
    Last Update:
    See Project
  • 9

    WinPcap v4.1.3 (libpcap v1.7.4)

    Parse pcapng and nanoseconds pcaps

    This is libpcap v1.7.4 library ported to Windows and deployed as WinPcap v4.1.3. It supports pcapng files and pcap files with nanoseconds timestamps. Instruction: 1. Install standard WinPcap 4.1.3 package from http://www.winpcap.org/ 2. On Windows 64-bit * Copy bin\x64\wpcap.dll from archive to \Windows\System32 * Copy bin\wpcap.dll from archive to \Windows\SysWOW64 3. On Windows 32-bit * Copy bin\wpcap.dll from archive to \Windows\System32
    Leader badge
    Downloads: 78 This Week
    Last Update:
    See Project
  • Earn up to 16% annual interest with Nexo. Icon
    Earn up to 16% annual interest with Nexo.

    Access competitive interest rates on your digital assets.

    Generate interest, borrow against your crypto, and trade a range of cryptocurrencies — all in one platform. Geographic restrictions, eligibility, and terms apply.
    Get started with Nexo.
  • 10
    This is a lightweight library containing a number of classes and functions to ease the task of programming GTK+ programs with C++ in POSIX (unix-like) environments, including classes to make GTK+ exception safe and for writing threaded programs.
    Leader badge
    Downloads: 34 This Week
    Last Update:
    See Project
  • 11
    Arduino FOC

    Arduino FOC

    Arduino FOC for BLDC and Stepper motors

    We live in very exciting times 😃! BLDC motors are entering the hobby community more and more and many great projects have already emerged leveraging their far superior dynamics and power capabilities. BLDC motors have numerous advantages over regular DC motors but they have one big disadvantage, the complexity of control. Even though it has become relatively easy to design and manufacture PCBs and create our own hardware solutions for driving BLDC motors the proper low-cost solutions are yet to come. One of the reasons for this is the apparent complexity of writing the BLDC driving algorithms, Field oriented control (FOC) being an example of one of the most efficient ones. The solutions that can be found online are almost exclusively very specific for certain hardware configurations and the microcontroller architecture used. Additionally, most of the efforts at this moment are still channeled towards the high-power applications of the BLDC motors and proper low-cost FOC.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 12
    Bloaty

    Bloaty

    Bloaty: a size profiler for binaries

    Bloaty is a deep, accurate size profiler for native binaries that tells you where every byte comes from so you can shrink executables and libraries intelligently. It parses binary formats like ELF, Mach-O, and DWARF symbol/debug data without relying solely on toolchain heuristics, letting you attribute size to files, sections, symbols, templates, and even compilation units. Reports can be produced at multiple granularities and diffed across builds to identify regressions introduced by compiler flags, dependencies, or new code paths. The tool is designed to be fast enough for iterative use in developer workflows and CI, making size budgets enforceable rather than aspirational. It also supports data sources such as symbol tables and map files, combining them into coherent, readable breakdowns. Teams use Bloaty to drive systematic size-reduction efforts in embedded, desktop, and mobile software where startup time, memory footprint, or download size matter.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 13
    CityHash

    CityHash

    Automatically exported from Google code CityHash

    CityHash is a family of non-cryptographic hash functions optimized for extremely fast and high-quality hashing of strings on modern CPUs. Developed by Google, it is implemented in C++ and designed to efficiently handle both short and long inputs using techniques such as mixing operations and CPU-specific optimizations. CityHash offers multiple hash sizes—32-bit, 64-bit, 128-bit, and 256-bit variants—with the CRC-based versions leveraging hardware acceleration on CPUs that support SSE4.2 CRC32 instructions. The library emphasizes hashing performance and uniformity rather than cryptographic security, making it ideal for use in data structures like hash tables and distributed systems requiring rapid key lookups. CityHash has been rigorously tested using tools like SMHasher to ensure high-quality mixing and collision resistance across a wide range of inputs. Its speed and portability have made it a popular choice for developers needing dependable, lightweight hash functions.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 14
    DRACO

    DRACO

    A ibrary for compressing and decompressing 3D geometric meshes

    Draco is an open-source library for compressing and decompressing 3D geometric meshes and point clouds. It is intended to improve the storage and transmission of 3D graphics. Learn about compressing and viewing 3D models with Draco, and about different compression models and their effects. Draco was designed and built for compression efficiency and speed. The code supports compressing points, connectivity information, texture coordinates, color information, normals, and any other generic attributes associated with geometry. With Draco, applications using 3D graphics can be significantly smaller without compromising visual fidelity. For users, this means apps can now be downloaded faster, 3D graphics in the browser can load quicker, and VR and AR scenes can now be transmitted with a fraction of the bandwidth and rendered quickly.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 15
    Easy3D

    Easy3D

    Efficient library for processing 3D data

    Easy3D is a lightweight, easy-to-use, and efficient library for processing and rendering 3D data, implemented in C++ with Python bindings. It is designed for tasks such as 3D modeling, geometry processing, and rendering, emphasizing simplicity and efficiency. Easy3D serves as a valuable tool for research, education, and the development of sophisticated 3D applications, providing a solid foundation for handling 3D data.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 16
    GSL

    GSL

    Guidelines support library

    The Guidelines Support Library (GSL) contains functions and types that are suggested for use by the C++ Core Guidelines maintained by the Standard C++ Foundation. This repo contains Microsoft's implementation of GSL. The entire implementation is provided inline in the headers under the gsl directory. The implementation generally assumes a platform that implements C++14 support. While some types have been broken out into their own headers (e.g. gsl/span), it is simplest to just include gsl/gsl and gain access to the entire library. This project makes use of the Google Test testing library. Please see the ThirdPartyNotices.txt file for details regarding the licensing of Google Test.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 17
    Hello ImGui

    Hello ImGui

    Hello, Dear ImGui: unleash your creativity in app development

    hello_imgui is a cross-platform framework that simplifies the development of graphical applications using Dear ImGui. It abstracts away boilerplate code for window creation, input handling, and platform integration, allowing developers to focus on building user interfaces and interactive content quickly. Targeted at prototyping, tools, and GUI apps, hello_imgui works on Windows, macOS, Linux, iOS, and WebAssembly with minimal setup. Its plug-and-play nature makes it ideal for teaching, demos, and productivity tools.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 18
    MCScanX

    MCScanX

    MCScanX: Multiple Collinearity Scan toolkit X version

    MCScanX is a toolkit for detecting gene synteny and collinearity, aiding in the evolutionary analysis of gene arrangements across multiple genomes. It extends the original MCScan algorithm by incorporating additional utilities for visualization and downstream analyses.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 19
    Proxy

    Proxy

    Proxy: Next Generation Polymorphism in C++

    For decades, object-based virtual tables have been a de facto implementation of runtime polymorphism in many (compiled) programming languages. There are many drawbacks in this mechanism, including life management (because each object may have a different size and ownership) and reflection (because it is hard to balance between usability and memory allocation). To workaround these drawbacks, some languages like Java or C# choose to sacrifice performance by introducing GC to facilitate lifetime management, and JIT-compile the source code at runtime to generate full metadata. We improved the theory and implemented it as a C++ library without sacrificing performance, proposing to merge it into the C++ standard.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 20
    Rapid YAML

    Rapid YAML

    Library to parse and emit YAML, and do it fast

    Or ryml, for short. ryml is a C++ library to parse and emit YAML, and do it fast, on everything from x64 to bare-metal chips without operating system. (If you are looking to use your programs with a YAML tree as a configuration tree with override facilities, take a look at c4conf). ryml parses both read-only and in-situ source buffers; the resulting data nodes hold only views to sub-ranges of the source buffer. No string copies or duplications are done, and no virtual functions are used. The data tree is a flat index-based structure stored in a single array. Serialization happens only at your direct request, after parsing / before emitting. Internally, the data tree representation stores only string views and has no knowledge of types, but of course, every node can have a YAML type tag. ryml makes it easy and fast to read and modify the data tree.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 21
    Thrust

    Thrust

    The C++ parallel algorithms library

    Thrust is the C++ parallel algorithms library which inspired the introduction of parallel algorithms to the C++ Standard Library. Thrust's high-level interface greatly enhances programmer productivity while enabling performance portability between GPUs and multicore CPUs. It builds on top of established parallel programming frameworks (such as CUDA, TBB, and OpenMP). It also provides a number of general-purpose facilities similar to those found in the C++ Standard Library. The NVIDIA C++ Standard Library is an open-source project; it is available on GitHub and included in the NVIDIA HPC SDK and CUDA Toolkit. If you have one of those SDKs installed, no additional installation or compiler flags are needed to use libcu++. Thrust is a header-only library; there is no need to build or install the project unless you want to run the Thrust unit tests.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 22
    Tiny CUDA Neural Networks

    Tiny CUDA Neural Networks

    Lightning fast C++/CUDA neural network framework

    This is a small, self-contained framework for training and querying neural networks. Most notably, it contains a lightning-fast "fully fused" multi-layer perceptron (technical paper), a versatile multiresolution hash encoding (technical paper), as well as support for various other input encodings, losses, and optimizers. We provide a sample application where an image function (x,y) -> (R,G,B) is learned. The fully fused MLP component of this framework requires a very large amount of shared memory in its default configuration. It will likely only work on an RTX 3090, an RTX 2080 Ti, or high-end enterprise GPUs. Lower-end cards must reduce the n_neurons parameter or use the CutlassMLP (better compatibility but slower) instead. tiny-cuda-nn comes with a PyTorch extension that allows using the fast MLPs and input encodings from within a Python context. These bindings can be significantly faster than full Python implementations; in particular for the multiresolution hash encoding.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 23
    XGBoost

    XGBoost

    Scalable and Flexible Gradient Boosting

    XGBoost is an optimized distributed gradient boosting library, designed to be scalable, flexible, portable and highly efficient. It supports regression, classification, ranking and user defined objectives, and runs on all major operating systems and cloud platforms. XGBoost works by implementing machine learning algorithms under the Gradient Boosting framework. It also offers parallel tree boosting (GBDT, GBRT or GBM) that can quickly and accurately solve many data science problems. XGBoost can be used for Python, Java, Scala, R, C++ and more. It can run on a single machine, Hadoop, Spark, Dask, Flink and most other distributed environments, and is capable of solving problems beyond billions of examples.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 24
    frugally-deep

    frugally-deep

    A lightweight header-only library for using Keras (TensorFlow) models

    Use Keras models in C++ with ease. A lightweight header-only library for using Keras (TensorFlow) models in C++. Works out-of-the-box also when compiled into a 32-bit executable. (Of course, 64 bit is fine too.) Avoids temporarily allocating (potentially large chunks of) additional RAM during convolutions (by not materializing the im2col input matrix). Utterly ignores even the most powerful GPU in your system and uses only one CPU core per prediction. Quite fast on one CPU core, and you can run multiple predictions in parallel, thus utilizing as many CPUs as you like to improve the overall prediction throughput of your application/pipeline.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 25
    libpqxx

    libpqxx

    The official C++ client API for PostgreSQL

    libpqxx is the official C++ client library for interacting with PostgreSQL, providing a high-level, type-safe API on top of the native libpq library. It allows C++ applications to connect to PostgreSQL databases, execute queries, and handle results with idiomatic C++ syntax. The library is suitable for performance-critical and systems-level applications.
    Downloads: 2 This Week
    Last Update:
    See Project
MongoDB Logo MongoDB