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.

  • Our Free Plans just got better! | Auth0 Icon
    Our Free Plans just got better! | Auth0

    With up to 25k MAUs and unlimited Okta connections, our Free Plan lets you focus on what you do best—building great apps.

    You asked, we delivered! Auth0 is excited to expand our Free and Paid plans to include more options so you can focus on building, deploying, and scaling applications without having to worry about your security. Auth0 now, thank yourself later.
    Try free now
  • Context for your AI agents Icon
    Context for your AI agents

    Crawl websites, sync to vector databases, and power RAG applications. Pre-built integrations for LLM pipelines and AI assistants.

    Build data pipelines that feed your AI models and agents without managing infrastructure. Crawl any website, transform content, and push directly to your preferred vector store. Use 10,000+ tools for RAG applications, AI assistants, and real-time knowledge bases. Monitor site changes, trigger workflows on new data, and keep your AIs fed with fresh, structured information. Cloud-native, API-first, and free to start until you need to scale.
    Try for free
  • 1
    QtRPT

    QtRPT

    Easy-to-use print report library and designer

    QtRPT is the easy-to-use report engine written in C++ QtToolkit. It allows combining several reports in one XML file. For separately taken field, you can specify some condition depending on which this field will display in different font and background color, etc. The project consists of two parts: report library QtRPT and report designer application QtRptDesigner. Report file is a file in XML format. The report designer makes easy to create report XML file.
    Leader badge
    Downloads: 20 This Week
    Last Update:
    See Project
  • 2
    Effekseer

    Effekseer

    This software is a particle effect editing tool

    Effekseer is an open-source tool designed for creating stunning visual effects for games and multimedia applications. It allows artists and developers to design complex particle effects through an intuitive graphical user interface, supporting various features like particles, beams, and distortion effects. Effekseer supports multiple platforms and integrates seamlessly with popular game engines, enabling the creation of rich visual experiences without extensive programming knowledge.
    Downloads: 4 This Week
    Last Update:
    See Project
  • 3
    Embedded Template Library (ETL)

    Embedded Template Library (ETL)

    Embedded Template Library

    C++ is a great language to use for embedded applications and templates are a powerful aspect. The standard library can offer a great deal of well-tested functionality, but there are some parts of the standard library that do not fit well with deterministic behavior and limited resource requirements. These limitations usually preclude the use of dynamically allocated memory and containers with open-ended sizes. What is needed is a template library where the user can declare the size, or maximum size of any object upfront. Most embedded compilers do not currently support the standard beyond C++ 03, therefore excluding the programmer from using the enhanced features of the later library.
    Downloads: 4 This Week
    Last Update:
    See Project
  • 4
    Faiss

    Faiss

    Library for efficient similarity search and clustering dense vectors

    Faiss is a library for efficient similarity search and clustering of dense vectors. It contains algorithms that search in sets of vectors of any size, up to ones that possibly do not fit in RAM. It also contains supporting code for evaluation and parameter tuning. Faiss is written in C++ with complete wrappers for Python/numpy. Some of the most useful algorithms are implemented on the GPU. It is developed by Facebook AI Research. Faiss contains several methods for similarity search. It assumes that the instances are represented as vectors and are identified by an integer, and that the vectors can be compared with L2 (Euclidean) distances or dot products. Vectors that are similar to a query vector are those that have the lowest L2 distance or the highest dot product with the query vector. It also supports cosine similarity, since this is a dot product on normalized vectors.
    Downloads: 4 This Week
    Last Update:
    See Project
  • Sell your products and services as gift cards, vouchers and tickets with powerful automation Icon
    Sell your products and services as gift cards, vouchers and tickets with powerful automation

    The new standard in omni-channel sales automation.

    Vouchers, gift cards and tickets are the most profitable items your business can sell today. On average, only 85% of business vouchers are redeemed. Since VoucherCart delivers payment in full and in advance, your business can sell confidently, safely, and without hassle.
    Learn More
  • 5
    GLIntercept

    GLIntercept

    GLIntercept is a OpenGL function call interceptor for Windows

    GLIntercept is a powerful OpenGL debugging and tracing tool for Windows that allows developers to intercept and log OpenGL function calls made by applications. It captures real-time graphics API activity, shader sources, textures, and framebuffers, making it invaluable for performance tuning, reverse engineering, and debugging complex rendering problems. GLIntercept can inject itself into any OpenGL application and provide deep inspection capabilities, helping developers visualize pipeline behavior and diagnose rendering issues with minimal intrusion.
    Downloads: 4 This Week
    Last Update:
    See Project
  • 6
    Matplot++

    Matplot++

    Matplot++: A C++ Graphics Library for Data Visualization

    Data visualization can help programmers and scientists identify trends in their data and efficiently communicate these results with their peers. Modern C++ is being used for a variety of scientific applications, and this environment can benefit considerably from graphics libraries that attend the typical design goals toward scientific data visualization. Besides the option of exporting results to other environments, the customary alternatives in C++ are either non-dedicated libraries that depend on existing user interfaces or bindings to other languages. Matplot++ is a graphics library for data visualization that provides interactive plotting, means for exporting plots in high-quality formats for scientific publications, a compact syntax consistent with similar libraries, dozens of plot categories with specialized algorithms, multiple coding styles, and supports generic backends.
    Downloads: 4 This Week
    Last Update:
    See Project
  • 7
    Proxygen

    Proxygen

    A collection of C++ HTTP libraries including an easy to use HTTP serve

    This project comprises the core C++ HTTP abstractions used at Facebook. Internally, it is used as the basis for building many HTTP servers, proxies, and clients. This release focuses on the common HTTP abstractions and our simple HTTPServer framework. Future releases will provide simple client APIs as well. The framework supports HTTP/1.1, SPDY/3, SPDY/3.1, HTTP/2, and HTTP/3. The goal is to provide a simple, performant, and modern C++ HTTP library. Note that currently this project has been tested on Ubuntu 18.04 and Mac OSX although it likely works on many other platforms. The central abstractions to understand in proxygen/lib are the session, codec, transaction, and handler. These are the lowest level abstractions, and we don't generally recommend building off of these directly. When bytes are read off the wire, the HTTPCodec stored inside HTTPSession parses these into higher-level objects and associates with it a transaction identifier.
    Downloads: 4 This Week
    Last Update:
    See Project
  • 8
    RF24

    RF24

    OSI Layer 2 driver for nRF24L01 on Arduino & Raspberry Pi/Linux

    Optimized high-speed driver for nRF24L01(+) 2.4GHz wireless transceiver. More compliant with the manufacturer specified operation of the chip, while allowing advanced users to work outside the recommended operation. Utilize the capabilities of the radio to their full potential via Arduino. More reliable, responsive, bug-free and feature-rich. Easy for beginners to use, with well-documented examples and features. Consumed with a public interface that's similar to other Arduino standard libraries. OSI Network Layer for multi-device communication. Create a home sensor network.
    Downloads: 4 This Week
    Last Update:
    See Project
  • 9
    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: 4 This Week
    Last Update:
    See Project
  • CompAccelerator Icon
    CompAccelerator

    CompAccelerator is a highly configurable compensation solution designed from the HR perspective.

    Created by HR professionals that have spent years experiencing the pains of compensation processes, CompAccelerator is designed to solve the problems that you face every day. Deliver the actions you need, on the layout you want, with the calculations you need, all in a fraction of the time. Schedule a demo today and see how sophisticated functionality in an easy to use interface can save your team from the perils of compensation management.
    Learn More
  • 10
    WS2812FX

    WS2812FX

    WS2812 FX library for Arduino and ESP8266

    This library features a variety of blinken effects for the WS2811/WS2812/NeoPixel LEDs. It is meant to be a drop-in replacement for the Adafruit NeoPixel library with additional features. You can search for WS2812FX in the Arduino IDE Library Manager or install the latest (or development) version manually. More complex effects can be created by dividing your string of LEDs into segments (up to ten) and programming each segment independently. Use the segment() function to program each segment's mode, color, speed, and direction (normal or reverse). Note, some effects make use of more than one color (up to three) and are programmed by specifying an array of colors. Random color introduced alternating from start and end of strip. Alternating white/red/black pixels running. Strobe effect with different strobe count and pause, controlled by speed setting. Classic Strobe effect. Cycling through the rainbow.
    Downloads: 4 This Week
    Last Update:
    See Project
  • 11
    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: 4 This Week
    Last Update:
    See Project
  • 12
    inotify-tools

    inotify-tools

    Inotify-tools is a C library and a set of command-line programs

    This is a package of some command-line utilities relating to inotify. The general purpose of this package is to allow inotify's features to be used from within shell scripts.
    Downloads: 4 This Week
    Last Update:
    See Project
  • 13
    libfacedetection

    libfacedetection

    Library for face detection in images

    This is an open source library for CNN-based face detection in images. The CNN model has been converted to static variables in C source files. The source code does not depend on any other libraries. What you need is just a C++ compiler. You can compile the source code under Windows, Linux, ARM and any platform with a C++ compiler. SIMD instructions are used to speed up the detection. You can enable AVX2 if you use Intel CPU or NEON for ARM. The model file has also been provided in directory ./models/. The file examples/detect-image.cpp and examples/detect-camera.cpp show how to use the library. The library was trained by libfacedetection.train. You can copy the files in directory src/ into your project, and compile them as the other files in your project. The source code is written in standard C/C++. It should be compiled at any platform which supports C/C++.
    Downloads: 4 This Week
    Last Update:
    See Project
  • 14
    libgphoto2

    libgphoto2

    The libgphoto2 camera access and control library

    libgphoto2 is a library that can be used by applications to access various digital cameras. libgphoto2 itself is not a GUI application, as opposed to gphoto. There are GUI frontends for the gphoto2 library, however, such as gtkam for example. libgphoto2 can only talk to cameras the language of those it understands. That is, if you own a camera that speaks a language that isn't published anywhere and nobody has been able to figure out the meaning of the sentences, libgphoto2 cannot communicate with those cameras. Then, there are cameras supporting the so-called USB Mass Storage protocol. This is a protocol that has been published and lets you access any storage device, be it a camera or a disk connected via USB to your computer. As there are already drivers for this protocol out there, you don't need an additional library like libgphoto2. The list of cameras that use USB Mass Storage is getting longer every day, so we won't publish it.
    Downloads: 4 This Week
    Last Update:
    See Project
  • 15
    lockfree

    lockfree

    A collection of lock-free data structures written in standard C++11

    lockfree is a collection of lock-free data structures written in standard C++11 and suitable for all platforms - from deeply embedded to HPC. Lock-free data structures are data structures that are thread and interrupt-safe for concurrent use without having to use mutual exclusion mechanisms. They are most useful for inter-process communication and often scale much better than lock-based structures with the number of operations and threads.
    Downloads: 4 This Week
    Last Update:
    See Project
  • 16
    re2

    re2

    Alternative to backtracking regular expression engines

    RE2 is a fast, safe, thread-friendly alternative to backtracking regular expression engines like those used in PCRE, Perl, and Python. It is a C++ library. This is the source code repository for RE2, a regular expression library. There is a fair amount of documentation (including code snippets) in the re2.h header file. Unless otherwise noted, the RE2 source files are distributed under the BSD-style license found in the LICENSE file. In POSIX mode, RE2 accepts standard POSIX (egrep) syntax regular expressions. In Perl mode, RE2 accepts most Perl operators. The only excluded ones are those that require backtracking (and its potential for exponential runtime) to implement. These include backreferences (submatching is still okay) and generalized assertions. The Syntax page documents the supported Perl-mode syntax in detail. The default is Perl mode. The constructor takes an optional second argument that can be used to change RE2's default options.
    Downloads: 4 This Week
    Last Update:
    See Project
  • 17

    raspicam

    C++ library for controlling Raspberry Pi Camera (with/without OpenCV)

    This library allows to use the Raspberry Pi Camera. Main features: - Provides class RaspiCam for easy and full control of the camera - Provides class RaspiCam_Cv for easy control of the camera with OpenCV. - Easy compilation/installation using cmake. - No need to install development file of userland. Implementation is hidden. - Many examples
    Downloads: 24 This Week
    Last Update:
    See Project
  • 18

    Poppler Win32

    Poppler/PopplerQt5 pre-built binaries for Win32 GCC

    Poppler Win32 are pre-built binaries of the Poppler library, it includes libpoppler.dll.a and libpoppler-qt5.dll.a. We made these pre-built binaries since building Poppler (Especially with Qt5 support) is hard and not fully supported on Microsoft Windows. Poppler Win32 was tested using Qt 5.2.1 and Mingw32. "Poppler is a PDF rendering library based on the xpdf-3.0 code base."
    Leader badge
    Downloads: 46 This Week
    Last Update:
    See Project
  • 19
    CUDA API Wrappers

    CUDA API Wrappers

    Thin, unified, C++-flavored wrappers for the CUDA APIs

    CUDA API Wrappers is a C++ library providing high-level, modern wrappers for NVIDIA’s CUDA runtime and driver APIs, enhancing usability and efficiency. It is intended for those who would otherwise use these APIs directly, to make working with them more intuitive and consistent, making use of modern C++ language capabilities, programming idioms, and best practices. In a nutshell - making CUDA API work more fun.
    Downloads: 3 This Week
    Last Update:
    See Project
  • 20
    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: 3 This Week
    Last Update:
    See Project
  • 21
    DASH V4

    DASH V4

    Blazing fast library to create a functional dashboard on ESP8266

    DASH V4 is the 4th-gen blazing fast library to create a functional & real-time dashboard for ESP8266 & ESP32 microcontrollers. This library includes charts, display cards, interactive buttons and many more components to create a perfect dashboard that is accessible locally via your IoT device's IP. DASH does not require any kind of internet connection, everything is stored locally.
    Downloads: 3 This Week
    Last Update:
    See Project
  • 22
    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: 3 This Week
    Last Update:
    See Project
  • 23
    DynaMix

    DynaMix

    A new take on polymorphism

    DynaMix (Dynamic Mixins) is an alternative take on object-oriented programming and dynamic polymorphism. It lets users compose and modify polymorphic objects at run time. The main target language is C++, but C is also supported. The library is a means to create a project's architecture rather than achieve its purpose. It helps with extensibility, readability, scalability, and interoperability. It focuses on maximal performance and minimal memory overhead. The library uses the type dynamix::object as a placeholder, whose instances can be extended with existing classes (mixins), thus providing a particular instance with the mixin features of all those types. Likely the most important types of mixin features are messages: functional objects that in C++-OOP terms can be thought of as methods. Mixin features are overridable and use late binding and singular dispatch. Unicasts and multicasts are possible.
    Downloads: 3 This Week
    Last Update:
    See Project
  • 24
    Folly

    Folly

    An open-source C++ library developed and used at Facebook

    Folly (acronymed loosely after Facebook Open Source Library) is a library of C++14 components designed with practicality and efficiency in mind. Folly contains a variety of core library components used extensively at Facebook. In particular, it's often a dependency of Facebook's other open source C++ efforts and place where those projects can share code. It complements (as opposed to competing against) offerings such as Boost and of course std. In fact, we embark on defining our own component only when something we need is either not available, or does not meet the needed performance profile. We endeavor to remove things from folly if or when std or Boost obsoletes them. Performance concerns permeate much of Folly, sometimes leading to designs that are more idiosyncratic than they would otherwise be (see e.g. PackedSyncPtr.h, SmallLocks.h). Good performance at large scale is a unifying theme in all of Folly.
    Downloads: 3 This Week
    Last Update:
    See Project
  • 25
    HARFANG 3D engine

    HARFANG 3D engine

    HARFANG 3D source code public repository

    HARFANG 3D builds real-time 3D tools for industry professionals. Its software suite is tailored to developers, designers and engineers aiming to efficiently and seamlessly develop, implement & deploy 3D solutions (HMI, VR/AR, simulation, interactive 3D), regardless of development language or platform constraints. HARFANG Studio is the ideal 3D editor for creating real-time scenes & animations that match your design vision. It can manage the entire 3D graphics production workflow in a simple and optimized manner, without compromising the integration in other development environments. HARFANG Studio’s philosophy is in line with that of HARFANG 3D engine, a compliant, straightforward, fast & lightweight. Everything that runs in HARFANG Studio is compatible with our Framework and its supported coding languages. HARFANG Framework is an easy-to-adapt, cross-platform, multi-language, powerful and optimized 3D visualization engine written in C++ and accessible via an open API in C++.
    Downloads: 3 This Week
    Last Update:
    See Project