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
  • Full-stack observability with actually useful AI | Grafana Cloud Icon
    Full-stack observability with actually useful AI | 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
  • 1
    Caffe

    Caffe

    A fast open framework for deep learning

    Caffe is an open source deep learning framework that’s focused on expression, speed and modularity. It’s got an expressive architecture that encourages application and innovation, and extensible code that’s great for active development. Caffe also offers great speed, capable of processing over 60M images per day with a single NVIDIA K40 GPU. It’s arguably one of the fastest convnet implementations around. Caffe is developed by the Berkeley AI Research (BAIR)/The Berkeley Vision and Learning Center (BVLC) and a great community of contributors that continue to make Caffe state-of-the-art in both code and models. It’s been used in numerous projects, from startup prototypes and academic research projects, to large scale industrial applications.
    Downloads: 22 This Week
    Last Update:
    See Project
  • 2
    FastLED

    FastLED

    The FastLED library for colored LED animation on Arduino

    FastLED is a fast, efficient, easy-to-use Arduino library for programming addressable LED strips and pixels such as WS2810, WS2811, LPD8806, Neopixel and more. FastLED is used by thousands of developers, in countless art and hobby projects, and in numerous commercial products. We build FastLED to help you get started faster, develop your code faster, and make your code run faster. FastLED supports popular LEDs including Neopixel, WS2801, WS2811, WS2812B, LPD8806, TM1809, and more. The library runs on a wide range of Arduino and compatible boards, including both AVR- and ARM- based microcontrollers. In addition to fast, efficient, compatible LED driver code, FastLED also provides features that get your animations up and running fast.
    Downloads: 22 This Week
    Last Update:
    See Project
  • 3
    U++

    U++

    C++ framework with an ide.

    U++ is BSD licensed C++ cross-platform rapid application development framework focused on programmers productivity without sacrificing runtime performance. Based on strictly deterministic design it provides an alternative to GC collected platforms.
    Leader badge
    Downloads: 100 This Week
    Last Update:
    See Project
  • 4
    Perfetto

    Perfetto

    Production-grade client-side tracing, profiling, and analysis

    Perfetto is a production-grade tracing platform for Android, Linux, and Chrome that captures extremely detailed information about what a system is doing over time. It’s designed around a low-overhead producer/consumer model: instrumented components (“producers”) write binary events into shared memory buffers and a collector (“service”) reliably streams them to storage. The data model spans kernel and userspace, so you can stitch together CPU scheduling, app lifecycles, binder/IPC hops, GPU work, power and thermal signals, file I/O, heap samples, and more into a single coherent timeline. Perfetto’s ecosystem includes a web-based UI that can load multi-GB traces directly in the browser and an offline “trace processor” that exposes the trace as a queryable SQL-like table schema for deep analysis and automation. It integrates natively with Android (replacing older atrace/Systrace paths) and can sit alongside custom instrumentation in apps or services through its SDKs.
    Downloads: 20 This Week
    Last Update:
    See Project
  • Try Google Cloud Risk-Free With $300 in Credit Icon
    Try Google Cloud Risk-Free With $300 in Credit

    No hidden charges. No surprise bills. Cancel anytime.

    Use your credit across every product. Compute, storage, AI, analytics. When it runs out, 20+ products stay free. You only pay when you choose to.
    Start Free
  • 5
    linuxdeployqt

    linuxdeployqt

    Makes Linux applications self-contained by copying in the libraries

    Makes Linux applications self-contained by copying in the libraries and plugins that the application uses, and optionally generates an AppImage. Can be used for Qt and other applications. This Linux Deployment Tool, linuxdeployqt, takes an application as input and makes it self-contained by copying in the resources that the application uses (like libraries, graphics, and plugins) into a bundle. The resulting bundle can be distributed as an AppDir or as an AppImage to users, or can be put into cross-distribution packages. It can be used as part of the build process to deploy applications written in C, C++, and other compiled languages with systems like CMake, qmake, and make. When used on Qt-based applications, it can bundle a specific minimal subset of Qt required to run the application. This tool is conceptually based on the Mac Deployment Tool, macdeployqt in the tools applications of the Qt Toolkit, but has been changed to a slightly different logic.
    Downloads: 20 This Week
    Last Update:
    See Project
  • 6
    ESP32 BLE Keyboard library

    ESP32 BLE Keyboard library

    Bluetooth LE Keyboard library for the ESP32

    This library allows you to make the ESP32 act as a Bluetooth Keyboard and control what it does. Compatible with Android. Compatible with Windows. Compatible with Linux. Compatible with MacOS X (not stable, some people have issues, doesn't work with old devices). Compatible with iOS (not stable, some people have issues, doesn't work with old devices). There is also Bluetooth-specific information that you can set (optional): Instead of BleKeyboard bleKeyboard; you can do BleKeyboard bleKeyboard("Bluetooth Device Name", "Bluetooth Device Manufacturer", 100);. (Max length is 15 characters, anything beyond that will be truncated.) By default the battery level will be set to 100%, the device name will be ESP32 Bluetooth Keyboard and the manufacturer will be Espressif. This feature is meant to compensate for some applications and devices that can't handle fast input and will skip letters if too many keys are sent in a small time frame.
    Downloads: 19 This Week
    Last Update:
    See Project
  • 7
    ArUco

    ArUco

    Augmented reality library based on OpenCV

    ArUco is a minimal library for Augmented Reality applications based exclusively on OpenCV. Relies on b/w markers with codes that are detected by calling a single function. Trivial integration of your augmented reality applications with OpenGL and OGRE. See documentation at https://drive.google.com/file/d/1OiavRVYVJ-WH88sQg1LUsh8CuJZUQyrX/view?usp=sharing
    Leader badge
    Downloads: 178 This Week
    Last Update:
    See Project
  • 8
    IRremoteESP8266

    IRremoteESP8266

    Infrared remote library for ESP8266/ESP32

    Infrared remote library for ESP8266/ESP32. Send and receive infrared signals with multiple protocols. This library enables you to send and receive infra-red signals on an ESP8266 or an ESP32 using the Arduino framework using common 940nm IR LEDs and common IR receiver modules. e.g. TSOP{17,22,24,36,38,44,48} demodulators etc. Usage of the library has been slightly changed in v2.0. You will need to change your usage to work with v2.0 and beyond. You can read more about the changes required on our Upgrade to v2.0 page. The library has changed from using constants declared as #define to const with the appropriate naming per the C++ style guide. This may potentially cause old programs to not compile. The most likely externally used #defines have been aliased for limited backward compatibility for projects using the old style. Going forward, only the new constant name style will be supported for new protocol additions.
    Downloads: 18 This Week
    Last Update:
    See Project
  • 9
    dlib C++ Library
    Dlib is a C++ toolkit containing machine learning algorithms and tools for creating complex software in C++ to solve real world problems.
    Leader badge
    Downloads: 80 This Week
    Last Update:
    See Project
  • Go From AI Idea to AI App Fast Icon
    Go From AI Idea to AI App Fast

    One platform to build, fine-tune, and deploy ML models. No MLOps team required.

    Access Gemini 3 and 200+ models. Build chatbots, agents, or custom models with built-in monitoring and scaling.
    Try Free
  • 10
    Open3D

    Open3D

    A modern library for 3D data processing

    Open3D is an open-source library that supports rapid development of software that deals with 3D data. The Open3D frontend exposes a set of carefully selected data structures and algorithms in both C++ and Python. The backend is highly optimized and is set up for parallelization. Open3D was developed from a clean slate with a small and carefully considered set of dependencies. It can be set up on different platforms and compiled from source with minimal effort. The code is clean, consistently styled, and maintained via a clear code review mechanism. Open3D has been used in a number of published research projects and is actively deployed in the cloud. We welcome contributions from the open-source community. GCC 5.X and later on Linux. XCode 10+ and later on OS X 10.14+. Visual Studio 2019 and later on Windows.
    Downloads: 17 This Week
    Last Update:
    See Project
  • 11
    better-sqlite3

    better-sqlite3

    The fastest and simplest library for SQLite3 in Node.js

    The fastest and simplest library for SQLite3 in Node.js. Full transaction support. High performance, efficiency, and safety. Easy-to-use synchronous API (better concurrency than an asynchronous API... yes, you read that correctly). Support for user-defined functions, aggregates, virtual tables, and extensions. 64-bit integers (invisible until you need them). Worker thread support (for large/slow queries). Help this project stay strong! better-sqlite3 is used by thousands of developers and engineers on a daily basis. Long nights and weekends were spent keeping this project strong and dependable, with no ask for compensation or funding, until now. In most cases, if you're attempting something that cannot be reasonably accomplished with better-sqlite3, it probably cannot be reasonably accomplished with SQLite3 in general.
    Downloads: 17 This Week
    Last Update:
    See Project
  • 12
    JsonCpp

    JsonCpp

    A C++ library for interacting with JSON

    JSON is a lightweight data-interchange format. It can represent numbers, strings, ordered sequences of values, and collections of name/value pairs. JsonCpp is a C++ library that allows manipulating JSON values, including serialization and deserialization to and from strings. It can also preserve existing comment in unserialization/serialization steps, making it a convenient format to store user input files. The branch 00.11.zis a new branch, its major version number 00 is to show that it is different from 0.y.z and 1.y.z, the main purpose of this branch is to make a balance between the other two branches. Thus, users can use some new features in this new branch that introduced in 1.y.z, but can hardly applied into 0.y.z. You can download and install JsonCpp using the vcpkg dependency manager. The JsonCpp port in vcpkg is kept up to date by Microsoft team members and community contributors.
    Downloads: 16 This Week
    Last Update:
    See Project
  • 13
    spdlog

    spdlog

    Fast C++ logging library

    spdlog is a header only library. Just copy the files under include to your build tree and use a C++11 compiler. It provides a python like formatting API using the bundled fmt lib. spdlog takes the "include what you need" approach, your code should include the features that actually needed. For example, if you only need rotating logger, you need to include "spdlog/sinks/rotating_file_sink.h". spdlog provides various log targets, which are, rotating log files, daily log files, console logging (colors supported), syslog, Windows event log, and Windows debugger (OutputDebugString(..)). Easily extendable with custom log targets. Log filtering, log levels can be modified in runtime as well as in compile time. Support for loading log levels from argv or from environment var. Backtrace support, store debug messages in a ring buffer and display later on demand.
    Downloads: 13 This Week
    Last Update:
    See Project
  • 14
    TensorRT

    TensorRT

    C++ library for high performance inference on NVIDIA GPUs

    NVIDIA® TensorRT™ is an SDK for high-performance deep learning inference. It includes a deep learning inference optimizer and runtime that delivers low latency and high throughput for deep learning inference applications. TensorRT-based applications perform up to 40X faster than CPU-only platforms during inference. With TensorRT, you can optimize neural network models trained in all major frameworks, calibrate for lower precision with high accuracy, and deploy to hyperscale data centers, embedded, or automotive product platforms. TensorRT is built on CUDA®, NVIDIA’s parallel programming model, and enables you to optimize inference leveraging libraries, development tools, and technologies in CUDA-X™ for artificial intelligence, autonomous machines, high-performance computing, and graphics. With new NVIDIA Ampere Architecture GPUs, TensorRT also leverages sparse tensor cores providing an additional performance boost.
    Downloads: 12 This Week
    Last Update:
    See Project
  • 15
    cpp-httplib

    cpp-httplib

    A C++ header-only HTTP/HTTPS server and client library

    A C++11 single-file header-only cross-platform HTTP/HTTPS library. It's extremely easy to setup. Just include the httplib.h file in your code! This is a multi-threaded 'blocking' HTTP library. If you are looking for a 'non-blocking' library, this is not the one that you want. SSL support is available with CPPHTTPLIB_OPENSSL_SUPPORT. libssl and libcrypto should be linked. When using SSL, it seems impossible to avoid SIGPIPE in all cases, since on some operating systems, SIGPIPE can only be suppressed on a per-message basis, but there is no way to make the OpenSSL library do so for its internal communications. If your program needs to avoid being terminated on SIGPIPE, the only fully general way might be to set up a signal handler for SIGPIPE to handle or ignore it yourself. cpp-httplib officially supports only the latest Visual Studio. It might work with former versions of Visual Studio, but I can no longer verify it.
    Downloads: 12 This Week
    Last Update:
    See Project
  • 16
    stb

    stb

    stb single-file public domain libraries for C/C++

    stb is an open source collection of single-file C libraries created by Sean Barrett (nothings) for graphics, image loading, and utility functions. The repository provides lightweight, public domain libraries that can be easily integrated into projects without external dependencies or complex build processes. Popular components include stb_image.h for image loading, stb_image_write.h for writing images, and stb_truetype.h for font rendering. These libraries are widely used in game development, graphics engines, and multimedia applications due to their simplicity and portability. The project emphasizes ease of use, minimalism, and performance while avoiding bloated frameworks. Maintained and supported by the open source community, stb has become a standard toolkit for C and C++ developers working with images and graphics.
    Downloads: 12 This Week
    Last Update:
    See Project
  • 17
    Blynk C++ Library

    Blynk C++ Library

    Blynk library for embedded hardware

    Blynk is the most popular Internet of Things platform for connecting any hardware to the cloud, designing apps to control them, and managing your deployed products at scale. With Blynk Library you can connect over 400 hardware models (including ESP8266, ESP32, NodeMCU, all Arduinos, Raspberry Pi, Particle, Texas Instruments, etc.)to the Blynk Cloud. With Blynk apps for iOS and Android apps you can easily drag-n-drop graphic interfaces for any DIY or commercial project. It's a pure WYSIWG experience, no coding on iOS or Android required. Hardware can connect to Blynk Cloud (open-source server) over the Internet using hardware connectivity available on your board (like ESP32), or with the use of various shields (Ethernet, WiFi, GSM, LTE, etc). Blynk Cloud is available for every user of Blynk for free. Direct connection over Bluetooth is also possible. Check the included examples on how to use different types of connections (transports) and explore Blynk features.
    Downloads: 11 This Week
    Last Update:
    See Project
  • 18
    Contour

    Contour

    Modern C++ Terminal Emulator

    contour is a modern and actually fast, modal, virtual terminal emulator, for everyday use. It is aimed at power users with a modern feature mindset. Available on all 4 major platforms, Linux, OS/X, FreeBSD, Windows. GPU-accelerated rendering. Font ligatures support (such as in Fira Code). Unicode: Emoji support (-: 🌈 💝 😛 👪 - including ZWJ, VS15, VS16 emoji :-) Unicode: Grapheme cluster support. Bold and italic fonts. High-DPI support. Vertical Line Markers (quickly jump to markers in your history!) Vi-like input modes for improved selection and copy'n'paste experience and Vi-like scrolloff feature. Blurred behind transparent background when using Windows 10 or KDE window manager on Linux. Blurrable Background image support. Runtime configuration reload. 256-color and Truecolor support. Key binding customization.
    Downloads: 11 This Week
    Last Update:
    See Project
  • 19
    DMX Library for Arduino

    DMX Library for Arduino

    DMX Library and usage examples for Arduino

    This Library includes a DMX Master, DMX Slave and various examples on how to use its implementation. This projects has been started to support the use of our Shielded DMX / RDM Shield for Arduino. The library is made available under the GNU Lesser General Public License If you would like to make contributions to the source code feel free to contact the project admin
    Leader badge
    Downloads: 58 This Week
    Last Update:
    See Project
  • 20
    Shaderc

    Shaderc

    A collection of tools, libraries, and tests for Vulkan shader

    Shaderc is a collection of tools and libraries for compiling shaders—small programs that run on GPUs—into SPIR-V, the intermediate representation used by the Vulkan graphics API. It provides both a command-line tool (glslc) and a C/C++ library (libshaderc) that wrap the functionality of glslang (the Khronos reference compiler for GLSL) and SPIRV-Tools to deliver a modern, scriptable, and efficient shader compilation workflow. The glslc compiler offers a GCC/Clang-like interface for building GLSL and HLSL shaders, making it easy to integrate into existing build systems. Meanwhile, libshaderc exposes a stable API that allows developers to programmatically compile shader strings into SPIR-V modules within graphics engines and tools. Shaderc supports advanced features such as file inclusion (#include), concurrency, and cross-platform builds, and it maintains backward compatibility for long-term projects.
    Downloads: 9 This Week
    Last Update:
    See Project
  • 21
    TensorFlow

    TensorFlow

    TensorFlow is an open source library for machine learning

    Originally developed by Google for internal use, TensorFlow is an open source platform for machine learning. Available across all common operating systems (desktop, server and mobile), TensorFlow provides stable APIs for Python and C as well as APIs that are not guaranteed to be backwards compatible or are 3rd party for a variety of other languages. The platform can be easily deployed on multiple CPUs, GPUs and Google's proprietary chip, the tensor processing unit (TPU). TensorFlow expresses its computations as dataflow graphs, with each node in the graph representing an operation. Nodes take tensors—multidimensional arrays—as input and produce tensors as output. The framework allows for these algorithms to be run in C++ for better performance, while the multiple levels of APIs let the user determine how high or low they wish the level of abstraction to be in the models produced. Tensorflow can also be used for research and production with TensorFlow Extended.
    Downloads: 9 This Week
    Last Update:
    See Project
  • 22
    Arduino libraries

    Arduino libraries

    Arduino libraries and code

    This repository contains several Arduino libraries I have written to be used in applications. Most of them include example code on how the libraries can be used. Furthermore, this repository contains a few stand-alone applications. For bugs in the libraries, please fill in an issue in Github as that makes it far easier to track them. If possible provide a minimal code snippet that exposes the bug. Add information about the platform used and version etc. Also, proposals for solutions are welcome. For improvements and changes, please provide a pull request. I will try to follow up on them asap but it can take quite some time. Please try to be generic in your improvements and try to see "over the needs of your own application".
    Downloads: 8 This Week
    Last Update:
    See Project
  • 23
    Trust Wallet Core

    Trust Wallet Core

    Cross-platform, cross-blockchain wallet library

    Trust Wallet Core is an open source, cross-platform, mobile-focused library implementing low-level cryptographic wallet functionality for a high number of blockchains. It is a core part of the popular Trust Wallet, and some other projects. Most of the code is C++ with a set of strict C interfaces, and idiomatic interfaces for supported languages: Swift for iOS and Java for Android. Wallet Core supports more than 50 blockchains, Bitcoin, Ethereum, Binance Chain, and most major blockchain platforms. For new coins, you need to implement address handling and signing functionality in the wallet-core. For new coins on already supported blockchains or variations of already supported blockchains, please consider proper reuse of existing implementation. The Trust Wallet development team is always striving to add more blockchains that will be essential for developers and wallet users. We choose blockchains carefully based on the impact they will have for our community.
    Downloads: 8 This Week
    Last Update:
    See Project
  • 24
    libdatachannel

    libdatachannel

    C/C++ WebRTC network library featuring Data Channels, Media Transport

    libdatachannel is a C++ library that implements WebRTC DataChannels and ICE transports, enabling peer-to-peer communication without relying on media components. It is ideal for developers who want efficient, low-latency P2P communication for data transmission in IoT, multiplayer games, decentralized apps, or custom signaling architectures. Built for performance and minimalism, it allows fine-grained control over STUN, TURN, DTLS, and SCTP layers, with a clean and modern C++ interface.
    Downloads: 8 This Week
    Last Update:
    See Project
  • 25
    nghttp2

    nghttp2

    HTTP/2 C Library and tools

    nghttp2 is an implementation of HTTP/2 and its header compression algorithm HPACK in C. The framing layer of HTTP/2 is implemented as a form of reusable C library. On top of that, we have implemented HTTP/2 client, server and proxy. We have also developed a load test and benchmarking tool for HTTP/2. We have participated in httpbis working group since HTTP/2 draft-04, which is the first implementation draft. Since then we have updated nghttp2 library constantly to the latest specification and nghttp2 is now one of the most mature HTTP/2 implementations. HTTP/2 utilizes header compression method called HPACK. We offer HPACK encoder and decoder are available as public API. nghttp2 library itself is a bit low-level. The experimental high-level C++ API is also available. We have Python binding of this library, but we have not covered everything yet.
    Downloads: 8 This Week
    Last Update:
    See Project
MongoDB Logo MongoDB