Namespaces
Variants

A list of open-source C++ libraries

From cppreference.net

El objetivo de esta página es construir una lista exhaustiva de bibliotecas de C++ de código abierto, de modo que cuando alguien necesite una implementación de una funcionalidad particular, no tenga que perder tiempo buscando en la web ( DuckDuckGo , Google , Bing , etc.)

Si conoces una biblioteca que pueda ser útil para otros, por favor añade un enlace a ella aquí. No hay restricciones sobre lo que se puede incluir, excepto que el código fuente de la biblioteca debe estar fácilmente disponible para descargar.

La página se proporciona "tal cual" - con la esperanza de ser útil, pero sin ninguna garantía. Pueden aparecer aquí enlaces desactualizados, engañosos o incorrectos. Si has notado alguno de estos, sería genial si corrigieras el error.

Bibliotecas: Tabla de Contenidos

Bibliotecas:


Contenidos

Gestores de paquetes

Gestor de paquetes Descripción
build2 Una cadena de herramientas de compilación multiplataforma y de código abierto (MIT) que busca aproximar la conveniencia de Rust Cargo para desarrollar y empaquetar proyectos C/C++, proporcionando mayor profundidad y flexibilidad, especialmente en el sistema de compilación.
cget Obtención de paquetes Cmake. Puede utilizarse para descargar e instalar paquetes cmake.
cmodule Gestión de dependencias cmake no intrusiva.
conan Gestor de paquetes C/C++ descentralizado y de código abierto (MIT).
CPM.cmake Un script cmake que añade capacidades de gestión de dependencias a cmake. Está construido como una capa delgada alrededor del módulo FetchContent de cmake que añade control de versiones, caché, una API simple y más.
hunter Un gestor de paquetes multiplataforma basado en cmake para proyectos C/C++.
spack Un gestor de paquetes para supercomputadoras, Linux y macOS. Facilita la instalación de software científico. No está vinculado a un lenguaje particular.
teaport Un gestor de dependencias inspirado en cocoapods.
vcpkg Un gestor de paquetes C/C++ para Windows, Linux y macOS.
xmake Una herramienta de compilación y gestor de paquetes C/C++ multiplataforma basado en Lua.

Bibliotecas

Audio

Biblioteca Descripción Licencia Configuración
Amplitude Audio SDK Un motor de audio multiplataforma diseñado para las necesidades de los videojuegos. ( Fuente ) Apache-2.0 cmake, vcpkg
Aquila Una biblioteca DSP de código abierto y multiplataforma para C++11. MIT cmake
Aubio Una biblioteca C/Python para análisis de audio y música. ( Fuente ) GPL-3.0 make
audioFlux Una biblioteca C para análisis de audio y música, extracción de características. MIT
Essentia Una biblioteca y herramientas de código abierto para análisis, descripción y síntesis de audio y música (MIR) ( Fuente ) Affero GPLv3
FFTW Una biblioteca para calcular la DFT (SSE/SSE2/AVX/Altivec/ARM Neon). ( Fuente ) GPL-2.0 cmake
FMOD Un motor de audio multiplataforma fácil de usar y herramienta de creación de contenido de audio para videojuegos. Gratis para no comercial/Comercial cmake
KFR Un framework DSP/DFT rápido, moderno, C++17, de código abierto y multiplataforma, compatible con remuestreo de audio, filtros FIR/IIR, Biquad, (SSE, AVX, AVX-512, ARM NEON). ( Fuente ) GPL-2.0 cmake
libsoundio Una biblioteca C para entrada y salida de audio en tiempo real multiplataforma. ( Fuente ) MIT cmake
Maximilian Biblioteca DSP de Audio y Música en C++. MIT cmake
Miniaudio Una biblioteca C de reproducción y captura de audio. ( Fuente ) Unlicense archivo fuente único
ni-media Biblioteca C++ para leer y escribir archivos de audio. MIT cmake, vcpkg
OpenAL Una API de audio multiplataforma. BSD/LGPL/Propietaria cmake
PortAudio PortAudio es una biblioteca de E/S de audio gratuita, multiplataforma y de código abierto. ( Fuente ) MIT cmake, vcpkg
rnnoise Red neuronal recurrente para reducción de ruido de audio. BSD-3-Clause make
SELA S impl E L ossless A udio. MIT cmake
SoLoud Motor de audio fácil y portable para videojuegos. zlib
Soundtouch SoundTouch es una biblioteca de procesamiento de audio multiplataforma de código abierto para cambiar el Tempo, Tono y Tasas de Reproducción de flujos de audio o archivos de audio. ( Fuente ) LGPL-2.1 make
Tonic Síntesis de audio fácil y eficiente en C++. Unlicense
Verovio Una biblioteca rápida y ligera para grabación de notación musical. ( Fuente ) LGPL cmake, qmake
Wav2Letter++ Un kit de herramientas de reconocimiento de voz rápido escrito completamente en C++ y que utiliza la biblioteca de tensores ArrayFire y la biblioteca de aprendizaje automático flashlight para máxima eficiencia. Licencia BSD cmake

CD
Biblioteca Descripción Licencia Configuración
libkcompactdisc Una biblioteca para interactuar con CDs GPL v2.0 cmake

Huella digital
Biblioteca Descripción Licencia Configuración
chromaprint Chromaprint es una biblioteca de huellas digitales de audio diseñada para identificar audio casi idéntico. Intercambia precisión y robustez por rendimiento de búsqueda. Chromaprint puede utilizar múltiples bibliotecas FFT - FFmpeg, FFTW3, KissFFT o vDSP. ( Src ) MIT, LGPL 2.1 cmake
libmusicbrainz La Biblioteca Cliente de MusicBrainz (libmusicbrainz), también conocida como mb_client, es una biblioteca de desarrollo orientada a desarrolladores que deseen agregar capacidades de búsqueda en MusicBrainz a sus aplicaciones. La biblioteca soporta Windows, Linux y Mac OS X ( Src ) LGPL-2.1 cmake
libofa Una huella digital de audio de código abierto por MusicIP APL make

Formatos
Biblioteca Descripción Licencia Configuración
AudioFile Una biblioteca simple de C++ para leer y escribir archivos de audio. MIT cmake
audio_file Una biblioteca que maneja la lectura y escritura de archivos de audio en muchos formatos comunes. ( Src ) LGPL-2.1 make
dr_libs Bibliotecas de decodificación de audio (FLAC, MP3, WAV) en un solo archivo para C y C++. Unlicense
flac FLAC significa F ree L ossless A udio C odec, lo que significa que el audio comprimido en FLAC no tiene pérdida de calidad. FLAC se destaca como el códec de audio sin pérdida más rápido y ampliamente compatible, no propietario y libre de patentes. Open Source , BSD, GPL
LAME LAME es un codificador de alta calidad para MPEG Audio Layer III (MP3). LGPL
libsndfile Una biblioteca en C con envoltorio para C++ para leer y escribir archivos que contienen sonido muestreado (por ejemplo, WAV, AIFF) a través de una interfaz de biblioteca estándar. ( Src ) LGPL-2.1 cmake, make, vcpkg
minimp3 Decodificador MP3 minimalista CC0-1.0 header-only
Opus Un códec de audio completamente abierto, libre de regalías y altamente versátil. BSD cmake
Vorbis Ogg Vorbis es un formato de audio comprimido de propósito general completamente abierto, no propietario, libre de patentes y regalías. BSD cmake

Etiquetado
Biblioteca Descripción Licencia Configuración
id3lib Una biblioteca de código abierto multiplataforma para leer, escribir y manipular etiquetas ID3v1 e ID3v2, y recuperar información básica del encabezado mp3 como la tasa de bits. Sin embargo, ahora recomendamos migrar a taglib :) LGPL v2
taglib La Biblioteca de Metadatos de Audio TagLib es una biblioteca para leer y editar los metadatos de varios formatos de audio populares: ID3v1, ID3v2 para archivos MP3, comentarios Ogg Vorbis y etiquetas ID3 y comentarios Vorbis en archivos FLAC, MPC, Speex, WavPack, TrueAudio, WAV, AIFF, MP4 y ASF. ( Fuente ) LGPL y MPL v1.1

Evaluación Comparativa

Biblioteca Descripción Licencia Configuración
benchmark Una biblioteca para evaluar el rendimiento de fragmentos de código, similar a las pruebas unitarias Apache 2.0 cmake
Celero Una biblioteca/marco de trabajo completa para crear benchmarks en C++. Compatible con Windows, Linux y OSX usando C++11. Apache cmake
Criterion Una biblioteca de micro-benchmarking para C++ moderno MIT header-only; cmake
gperftools Las 'Google Performance Tools' incluyen una implementación de malloc de alto rendimiento y multihilo, además de herramientas para evaluar la asignación de memoria y la utilización de CPU. BSD 3-Clause "New" or "Revised" configure
nanobench Funcionalidad de micro-benchmarking simple, rápida y precisa de un solo encabezado para C++11/14/17/20. ( Src ) MIT header-only; cmake
picobench Una biblioteca de micro-benchmarking mínima (micro) MIT header-only; cmake
plf::nanotimer Una clase de temporizador simple multiplataforma con la mínima sobrecarga para benchmarking. zlib header-only

Comunicación

Biblioteca Descripción Licencia Configuración
ACE Redes asíncronas, desmultiplexación de eventos, mensajería ( Cód ) ( Doc ) Personalizado make
Apache Thrift El framework de software Apache Thrift, para el desarrollo de servicios escalables entre lenguajes, combina una pila de software con un motor de generación de código para construir servicios que funcionan de manera eficiente y fluida entre C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, OCaml y Delphi y otros lenguajes. ( Fuente ) Apache-2.0 cmake, vcpkg
Boost.Asio Redes asíncronas y síncronas, temporizadores, E/S serie BSL-1.0
Boost.Beast Una biblioteca HTTP y WebSocket construida sobre Boost.Asio BSL-1.0
Breep Una biblioteca de alto nivel, basada en eventos y peer-to-peer, que permite a los usuarios enviar y recibir objetos directamente. Licencia Pública de la Unión Europea 1.1 cmake
brpc Un framework RPC de grado industrial utilizado en toda Baidu, con más de 1,000,000 de instancias y miles de tipos de servicios. ( Código ) ( Doc ) Apache 2.0 cmake
C++ REST SDK Un cliente y escuchador HTTP asíncrono, Stream asíncrono, URI, JSON MIT cmake
cpp-httplib Una biblioteca HTTP/HTTPS multiplataforma de C++11 de un solo archivo y solo encabezado MIT solo encabezado; cmake
cpp-netlib Una Biblioteca de Red para C++ BSL-1.0 cmake
cppsimpleuri Un analizador de URI y consultas moderno en C++ MIT cmake
cpr Una biblioteca moderna de peticiones HTTP para C++ MIT cmake
Crow Un micro framework web en C++ (inspirado en Python Flask) BSD-3-Clause solo cabecera; cmake
curlpp Envoltorio C++ para libcURL (biblioteca CURL). ( Fuente ) cmake, vcpkg
DumaisLib Varias utilidades como WebServer, JSON, servidor WebSocket, framework REST (una biblioteca para crear una API REST en tu aplicación C++) MIT make
EasyHttp Una biblioteca cliente HTTP multiplataforma centrada en la usabilidad y velocidad, compatible con caché de respuestas http y más. MIT cmake
eCAL Una biblioteca de comunicación entre procesos de alto rendimiento Apache 2.0 cmake
fineftp-server Una biblioteca de servidor FTP para Windows y Unix MIT cmake
FPNN F ast P rogrammable N exus N etwork. Framework de servicio RPC completamente asíncrono de alto rendimiento. Soporta simultáneamente HTTP, WebSocket, TCP y UDP confiable. Permite el desarrollo de servidores de carga ultra alta, con SDKs de cliente correspondientes. 未知 make
gRPC Un framework RPC moderno, de código abierto y alto rendimiento que puede ejecutarse en cualquier entorno. ( Src ) ( Doc ) Apache-2.0 bazel, cmake, vcpkg
gsoap Un kit de desarrollo C/C++ para enlaces de datos XML, servicios web WSDL/SOAP/XML rápidos, WS-Security, servicios RESTful JSON/XML-RPC GPLv2
hmbdc Un framework/biblioteca middleware de publicación/suscripción de mensajes C++17 ligero y de alto rendimiento solo cabecera
HTTPP Un servidor HTTP simple, listo para producción, basado en C++14, construido sobre Boost y un cliente construido sobre libcurl. BSD 2-Clause "Simplified" cmake, make
IXWebSocket Una biblioteca WebSocket + HTTP de código abierto sin dependencias, compatible con SSL y la extensión WebSocket de compresión por mensaje deflate. BSD 3-Clause "New" or "Revised" cmake, make
KCP Un protocolo ARQ rápido y confiable que ayuda a las aplicaciones a reducir la latencia de red. MIT cmake
libashttp Una biblioteca cliente HTTP asíncrona GNU Lesser General Public v3.0
libjson-rpc-cpp

Un framework que proporciona soporte multiplataforma JSON-RPC (llamada a procedimiento remoto) para C++, completamente compatible con JSON-RPC 2.0 & 1.0.

MIT cmake, conan
libnavajo Un framework C++ que incluye un servidor http multihilo rápido, HTML5 Websockets, SSL, autenticación X509 y HTTP, compresión, cookies y gestión avanzada de sesiones, IPv4 e IPv6 (CeCILL-C). ACUERDO DE LICENCIA DE SOFTWARE LIBRE CeCILL-C cmake
libtins Una biblioteca para creación y captura de paquetes de red ( Src ) ( Doc ) BSD-2 cmake, vcpkg
LiteNetLibPP Una biblioteca UDP ligera y confiable para juegos MIT cmake
mailio Biblioteca MIME y de correo electrónico BSD 2-Clause "Simplified" cmake
nanomsg Una cola de mensajes rápida, sucesor de zeromq
netif Una biblioteca C++14 para obtener direcciones de red en Windows, Linux, macOS y FreeBSD. BSD 3-Clause "New" or "Revised" solo cabecera; cmake
nghttp2 Biblioteca y herramientas HTTP/2 en C (servidor, cliente, proxy y herramientas de evaluación comparativa) MIT cmake, configure
ngrest Un framework de servicios web RESTful JSON rápido y fácil de usar Apache 2.0 cmake
nng Una cola de mensajes rápida, sucesor de nanomsg
Oat++ Un Framework Web: Implementación de REST-API y Request ( Código ) ( Doc ) Apache 2.0 cmake
omniORB La implementación de CORBA ORB en C++ más rápida, completa y portable
OpenDDS Implementación de DDS (Data Distribution Service)
Paho MQTT Un cliente moderno de C++ para MQTT de Eclipse cmake
paozhu Un Framework Web C++20 Compatible con HTTP/2 ORM WebSocket MIT cmake
PcapPlusPlus Framework multiplataforma en C++ para captura de tráfico de red y análisis y creación de paquetes. Proporciona wrappers en C++ para muchos motores populares de procesamiento de paquetes como libpcap, Npcap, WinPcap, DPDK, AF_XDP y PF_RING. ( Código ) Unlicense conan, homebrew, cmake, vcpkg
POCO Redes: cifrado, HTTP; Archivos Zip ( Doc )
rest_rpc Un framework RPC de C++11, de alto rendimiento, multiplataforma y fácil de usar. MIT cmake
restbed Un framework multiplataforma rico en características que aporta funcionalidad RESTful asíncrona (comunicación segura sobre HTTP) a aplicaciones C++14. Licencia cmake
restc-cpp Acceso a API's JSON desde C++. Cliente HTTP, serialización nativa de clases C++ a/desde JSON, E/S asíncrona mediante corrutinas boost::asio. C++14. MIT cmake
restful_mapper ORM para consumir APIs RESTful JSON en C++ cmake, make
seastar Un framework de aplicaciones de alto rendimiento para el lado del servidor, basado en C++14/C++17. Apache 2.0 cmake, etc.
Silicon El Framework Web Silicon C++14: APIs Web Rápidas y Robusta MIT cmake
sockpp Una biblioteca de sockets C++ simple y moderna BSD 3-Cláusulas "Nueva" o "Revisada" cmake
stream-client Un cliente ligero basado en Boost para socket/conector/pool de sockets/resolver del lado del cliente Apache 2.0 solo cabecera; cmake
tacopie Una Biblioteca TCP C++11 MIT cmake
TAO CORBA
taox11 Una implementación de CORBA basada en C++11 MIT
Unicomm Red de comunicación asíncrona, framework de comunicación TCP de alto nivel
uvw Un libuv (E/S asíncrona multiplataforma) wrapper en C++17 MIT solo cabecera; cmake
WNetWrap Un contenedor de WinInet en C++ MIT
wvstreams Una biblioteca de redes en C++ que incluye UniConf y una API conveniente para D-Bus GPL
zeromq Una cola de mensajes rápida

Concurrencia

Biblioteca Descripción Licencia Configuración
AdaptiveCpp Proporciona un compilador y sistema de ejecución de descarga SYCL y C++ parallel STL para CPUs y GPUs de NVIDIA, AMD, Intel BSD-2-Clause cmake
Asyncpp Una biblioteca asíncrona de C++ que proporciona diversas operaciones concurrentes MIT cmake
BlockingCollection Clase de cola de bloqueo, pila y cola de prioridad segura para hilos en C++11, multi-productor y multi-consumidor GPL-3.0 solo cabecera
Boost.Atomic Proporciona tipos de datos atómicos y operaciones sobre estos tipos de datos, así como restricciones de ordenamiento de memoria requeridas para coordinar múltiples hilos a través de variables atómicas. BSL-1.0
Boost.Compute Una biblioteca de computación GPU/paralela para C++ basada en OpenCL. BSL-1.0 cmake
Boost.Context Una biblioteca C++11 que proporciona una abstracción de multitarea cooperativa en un único hilo. BSL-1.0
Boost.Interprocess Simplifica el uso de mecanismos de comunicación y sincronización entre procesos y ofrece una amplia gama de ellos: memoria compartida, archivos mapeados en memoria, semáforos, mutexes, variables de condición y tipos de mutex actualizables, versiones con nombre de los objetos de sincronización, bloqueo de archivos, colas de mensajes. BSL-1.0
Boost.Lockfree Proporciona estructuras de datos concurrentes no bloqueantes (también conocidas como lock-free): una cola, una pila y un búfer circular (spsc_queue). BSL-1.0
Boost.MPI Una interfaz compatible con C++ para el estándar Message Passing Interface BSL-1.0
Boost.Thread Permite el uso de múltiples hilos de ejecución con datos compartidos y medios para sincronizar datos entre los hilos. BSL-1.0
concurrencpp Concurrencia moderna para C++. Tareas, ejecutores, temporizadores y corrutinas C++20. MIT cmake
dispenso Concurrencia de alto rendimiento para C++. parallel_for, Futures, pipelines, timers, tareas temporizadas/periódicas y estructuras de datos concurrentes. MIT cmake
Highway Proporciona intrínsecos SIMD/vectoriales portables en rendimiento y agnósticos de longitud. Soporta: SSE3, SSE4, AVX*, NEON, SVE*, WASM SIMD, RISC-V, POWER. ( Doc ) Apache-2.0 cmake
HPX Un sistema de ejecución de C++ de propósito general para aplicaciones paralelas y distribuidas de cualquier escala ( Doc ) BSL-1.0 cmake, vcpkg
Intel TBB Intel® TBB es una biblioteca C++ multiplataforma para programación paralela en memoria compartida y computación heterogénea. La biblioteca proporciona: algoritmos paralelos genéricos, contenedores concurrentes, un asignador de memoria escalable, planificador de tareas con work-stealing y primitivas de sincronización de bajo nivel. ( Fuente ) ( Doc ) Apache-2.0 o Comercial cmake, make
KOKKOS Un modelo de programación para escribir aplicaciones HPC con portabilidad de rendimiento, utilizando CUDA, HIP, SYCL, HPX, OpenMP e hilos de C++ como backends ( Doc ) Personalizada cmake, make
libopenmpi El Proyecto Open MPI es una implementación de código abierto de la Interfaz de Paso de Mensajes 3-clause BSD
libsimdpp Una biblioteca C++ portátil de bajo nivel SIMD sin sobrecarga. Boost solo cabecera; cmake
MPL Una interfaz compatible con C++-17 para el estándar Message Passing Interface BSD 3-Cláusulas "Nueva" o "Revisada" solo cabecera; cmake
MutexGear Una biblioteca de sincronización solo para mutex en C/C++: wheel, rwlock, maintlock, colas de trabajo The MutexGear Library configure, msvc, make
OpenMP La especificación de la API OpenMP para programación paralela
PoCL Una implementación portátil, reorientable y de código abierto (basada en LLVM) del estándar OpenCL. ( Cód ) ( Doc ) MIT cmake
RaftLib Actores concurrentes estilo flujo de datos en C++17 que permiten computaciones paralelas de flujo de datos Apache-2.0 cmake
SObjectizer Un pequeño framework multiplataforma para aplicaciones concurrentes y dirigidas por eventos en C++ utilizando modelos de actores y publicación-suscripción. BSD-3-Clause cmake, vcpkg, conan
stdgpu Estructuras de Datos Eficientes Similares a STL en la GPU Apache 2.0 cmake
subprocess Biblioteca multiplataforma C++17/20 para ejecutar subprocesos MIT cmake, teaport
Taskflow Programación Paralela de Tareas en C++ Moderno TASKFLOW MIT cmake
task-thread-pool Grupo de hilos rápido y ligero para C++11 y versiones más recientes. BSD-2-Clause o MIT o BSL-1.0 cmake, vcpkg, encabezado único
ThreadPool Un grupo de hilos simple y ligero BSD-3-Clause solo cabecera; cmake, make
thread_pool Un grupo de hilos moderno, rápido y ligero MIT cmake
Thrust Algoritmos paralelos y estructuras de datos similares a STL sobre CUDA, TBB u OpenMP Apache v2.0, Boost v1.0. cmake
TimerAlarm Temporizadores y Alarmas basados en hilos. BSD-3-Clause solo cabecera; cmake, make
VexCL Una biblioteca de plantillas de expresión vectorial en C++ para OpenCL, CUDA, OpenMP MIT cmake
ViennaCL Álgebra lineal y algoritmos con backends OpenMP, CUDA y OpenCL. ( Cód ) ( Doc ) Personalizado cmake
Xenium Una biblioteca C++17 que proporciona varias estructuras de datos concurrentes y esquemas de reclamación. MIT solo cabecera; cmake

Configuración

Biblioteca Descripción Licencia Configuración
Boost.Program_options La biblioteca permite obtener opciones de programa, es decir, pares (nombre, valor) del usuario, mediante métodos convencionales como línea de comandos, archivo de configuración y variables de entorno. BSL-1.0
figcone Lee configuraciones JSON, YAML, TOML, XML o INI mediante la declaración de una estructura MS-PL cmake
gconfmm Una interfaz C++ multiplataforma (oficial) para la popular biblioteca GUI GTK, incluyendo callbacks con seguridad de tipos y un conjunto completo de widgets fácilmente extensibles mediante herencia. gtkmm utiliza STL, incluyendo string s, contenedores e iteradores. Soporta UTF8. ( Src ) ( Doc ) LGPLv2.1 autotools, meson, make
libconfig Una biblioteca C/C++ multiplataforma simple para procesar archivos de configuración estructurados ( "*.cfg" ) ( Src ) ( Doc ) LGPL 2.1 autotools, cmake, make
libconfini Un analizador INI multiplataforma escrito en C ( Doc ) GPL-3.0 autotools, make
uconfig Una biblioteca de configuración C++17 ligera Apache 2.0 header-only; cmake

Línea de Comando
Biblioteca Descripción Licencia Configuración
Argh! Un manejador de argumentos minimalista. BSD 3-Clause header-only; cmake, vcpkg
argparse (hbristow) Una clase C++ ligera para analizar argumentos de línea de comandos, con una interfaz similar a la clase homónima de Python. BSD
argparse (morrisfranken) Una biblioteca ligera para analizar argumentos de línea de comandos de manera elegante. Apache 2 header-only; cmake
argparse (p-ranav) Un analizador de argumentos de línea de comandos para C++17 MIT header-only; cmake, vcpkg
args Una biblioteca simple de análisis de argumentos para C++. MIT header-only; cmake, conan, meson, vcpkg
Boost.Program_options La biblioteca permite obtener opciones de programa, es decir, pares (nombre, valor) del usuario, mediante métodos convencionales como línea de comandos, archivo de configuración y variables de entorno. BSL-1.0
CLI11 Un analizador de línea de comandos para C++11 que proporciona un conjunto de funciones rico con una interfaz simple e intuitiva. BSD-3-Clause header-only; cmake, meson, vcpkg
clipp Análisis de Argumentos Potente y Expresivo para C++ Moderno. MIT header-only; cmake, vcpkg
cmd_line_parser Analizador de línea de comandos para C++17. MIT header-only; cmake
cmdlime Una biblioteca C++17 para análisis de línea de comandos que proporciona una interfaz concisa y declarativa con soporte para subcomandos, validadores y la capacidad de elegir el formato de opciones de línea de comandos GNU, POSIX o X11. MS-PL cmake
cxxopts Un analizador de argumentos de línea de comandos ligero para C++11/C++17, compatible con la sintaxis de estilo GNU estándar para opciones. MIT header-only; bazel, cmake
fire-hpp Cree CLIs completamente funcionales utilizando firmas de funciones. BSL-1.0 header-only; cmake
flags Analizador de argumentos simple y extensible para C++17. Unlicense header-only; cmake
gflags Una biblioteca que implementa el procesamiento de flags de línea de comandos. Incluye soporte incorporado para tipos estándar como cadena y la capacidad de definir flags en el archivo fuente en el que se utilizan. BSD cmake
structopt Analice argumentos de línea de comandos definiendo una estructura. MIT header-only; cmake
tclap Una biblioteca de plantillas C++ simple para analizar argumentos de línea de comandos. La biblioteca proporciona una interfaz orientada a objetos simple y flexible. MIT cmake

CSS
Biblioteca Descripción Licencia Configuración
mycss CSS Parser

HOCON
Biblioteca Descripción Licencia Configuración
cpp-hocon Una implementación en C++ del formato HOCON desarrollado por Pupplet.

JSON
Biblioteca Descripción Licencia Configuración
ArduinoJson Biblioteca JSON C++98/11/14/17 para Arduino, IoT y C++ embebido MIT cmake
Boost.JSON El análisis, serialización y DOM de JSON en C++11/17 BSL-1.0
cajun-jsonapi Una API de C++ para JSON con énfasis en una interfaz intuitiva y concisa que imita lo más posible al C++ estándar. make
DAW JSON Link Una biblioteca C++17 que proporciona enlaces estáticos de C++ con verificación de tipos, permitiendo el análisis directo a estructuras de datos del usuario sin asignación de biblioteca, modos push/pull, soporte de asignadores, constexpr BSL 1.0 cmake
Glaze Una de las bibliotecas JSON más rápidas (C++23) con serialización directa de memoria. También admite BEVE y CSV. MIT cmake, conan, build2, vcpkg
jansson Una biblioteca C para codificar, decodificar y manipular datos JSON con soporte UTF-8 MIT cmake, make
jeayeson Una biblioteca JSON para C++14 muy sensata BSD-3 solo cabecera
jios Flujos de Entrada y Salida JSON MIT cmake
JOST
json JSON de Niels Lohmann para C++11, con sintaxis intuitiva MIT solo cabecera; bazel, cmake, meson
Jsonifier Algunas clases C++20 para análisis/serialización JSON extremadamente rápida MIT cmake
JSON Voorhees JSON asesino para C++11 ( Doc ) Apache-2.0 cmake
JSON++
json11 Una pequeña biblioteca JSON para C++11, que proporciona análisis y serialización JSON. MIT cmake
JsonBox Una biblioteca de C++ utilizada para leer y escribir JSON con facilidad y rapidez. MIT cmake
jsoncons Una biblioteca para formatos de datos JSON y similares a JSON, con JSON Pointer, JSON Patch, JSONPath, CSV, MessagePack, CBOR, BSON, UBJSON. Personalizada solo encabezado
jsoncpp Una biblioteca que permite manipular valores JSON, incluyendo serialización y deserialización, preservando comentarios. MIT cmake, conan, vcpkg
libjson
minijson Un análisis y serialización JSON sin DOM y sin asignación de memoria en C++ Personalizada cmake
Neyson Biblioteca JSON Ligera para C++11 BSD-3-Clause cmake
nosjob Una biblioteca C++98 para generar y consumir datos JSON MIT make
qjson
rapidjson Un analizador/generador JSON rápido para C++ con API de estilo SAX/DOM, compatible con UTF-8/16/32, opcionalmente utiliza SIMD. ( Doc ) Personalizada solo cabecera; cmake, vcpkg
simdjson Analiza gigabytes de JSON por segundo aprovechando las microarquitecturas modernas y paralelizando con SIMD ( Doc ) ( Video ) Apache-2.0 cmake, vcpkg
struct_mapping Mapea JSON hacia y desde una estructura C++ MIT cmake
swxJson La biblioteca C++ JSON más conveniente actualmente en uso. Lee y escribe estructuras complejas en cualquier nivel con solo una llamada de función. El rendimiento es aproximadamente la mitad del de RapidJSON. MIT make
ThorsSerializer Flujos de Entrada/Salida JSON/BSON/YAML MIT make
ujson µjson es una biblioteca JSON pequeña, en C++11, con codificación UTF-8 cmake
yyjson Una biblioteca JSON de alto rendimiento escrita en C ANSI MIT cmake

TOML
Biblioteca Descripción Licencia Configuración
toml++ Analizador y serializador TOML para C++17 y posteriores
toml11 Biblioteca de análisis TOML basada en C++11

XML
Biblioteca Descripción Licencia Configuración
ai-xml Serializa objetos hacia y desde XML añadiendo una única función mínima a una clase. Utiliza libxml++ internamente. AGPL-3.0 make
GPDS Un serializador de datos de propósito general para serializar objetos hacia y desde XML. Utiliza TinyXML internamente.
gSOAP Enlaces de datos XML
libxml++ libxml++ es un contenedor C++ para la biblioteca C analizadora de XML libxml. ( Doc ) LGPL-2
pugixml Un analizador XML ligero, simple y rápido para C++ con soporte XPath MIT cmake, conan
tinyxml
tinyxml2 Otra versión y trabajo en progreso de TinyXML.
Xerces

YAML
Biblioteca Descripción Licencia Configuración
yaml-cpp Un analizador y emisor de YAML en C++ MIT cmake

Contenedores

Biblioteca Descripción Licencia Configuración
Boost.Bimap Una biblioteca de mapas bidireccionales que ofrece contenedores asociativos como bimap<X,Y> en los que tanto X como Y pueden usarse como clave. ( Src ) BSL-1.0
Boost.Container Una biblioteca que implementa varios contenedores conocidos, incluyendo contenedores similares a los de la biblioteca estándar, así como contenedores recursivos y nuevos contenedores útiles: flat_map , flat_set , flat_multimap , flat_multiset , stable_vector , static_vector , small_vector , devector . ( Fuente ) BSL-1.0 solo cabecera
Boost.Fusion Una biblioteca para trabajar con colecciones heterogéneas de tuples . Proporciona un conjunto de contenedores ( vector , list , set y map ), junto con una presentación transformada de sus datos subyacentes, también conocida como views ." ( Src ) BSL-1.0
Boost.Heap Una implementación de priority queues con más funcionalidad y diferentes características de rendimiento que las de la biblioteca estándar. ( Src ) BSL-1.0
Boost.Pointer Container Proporciona contenedores para almacenar objetos asignados en el heap de manera segura ante excepciones y con sobrecarga mínima. ( Fuente ) BSL-1.0
Boost.Tuple Implementa n- tuple pre-C++11 (una colección de tamaño fijo de elementos) ( Fuente ) BSL-1.0
Boost.Variant Implementa variant pre-C++17 (un contenedor seguro, genérico, basado en pila de union discriminada) ( Fuente ) BSL-1.0
C++ Allocators Asignadores conformes con la biblioteca estándar para memoria estática de tamaño fijo y basada en pila + otro asignador conforme que permite asignación personalizada de límites BSD-3-Clause cmake, make
cpp-btree Los contenedores B-tree aprovechan mejor la caché de la CPU: btree_map , btree_set , btree_multimap , btree_multiset . ( Fuente ) Apache-2.0 solo cabecera; cmake
DataFrame DataFrame de C++ para análisis estadístico, financiero y de aprendizaje automático -- en C++ moderno utilizando tipos nativos y almacenamiento de memoria continua BSD-3-Clause cmake, make, conan, vcpkg
eggs::variant Eggs.Variant es una unión discriminada genérica, segura en tipos y para C++11/14/17. Es notable en particular por tener un muy buen constexpr soporte. BSL-1.0 cmake
Frozen C++14 constexpr conjuntos inmutables, mapas y algoritmos basados en perfect-hashing. Apache-2.0 solo cabecera; cmake
Immer Una biblioteca de estructuras de datos persistentes e inmutables Boost cmake
plf::colony Contenedor desordenado "tipo bolsa" que supera en rendimiento a los contenedores std:: en escenarios de alta modificación, manteniendo punteros válidos a elementos no borrados independientemente de inserciones y eliminaciones. Compatible con C++98/11/14/etc. Véase también P0447 ( std::hive ). ( Fuente ) zlib conan build2
plf::list Una implementación de std::list que sacrifica el empalme de rangos por amigabilidad con la caché, produciendo una inserción, borrado e iteración más rápidos. Compatible con C++98/03/11/14/17/20/23/26/etc. ( Cód ) ( Doc ) zlib
plf::reorderase Una extensión y optimización del patrón "swap-and-pop"/"move-and-pop" para contenedores de acceso aleatorio para incrementar el rendimiento de borrado en contenedores de acceso aleatorio, cuando el orden posterior al borrado no es importante. Cubre borrados individuales, por rango y estilo std::erase_if . Compatible con C++98/11/14/etc. ( Fuente ) zlib
plf::queue Un contenedor de reemplazo directo para el std::queue adaptador de contenedor con mejor rendimiento que std::deque y std::list en un contexto de cola. Compatible con C++98/11/14/etc. ( Fuente ) zlib
plf::stack Un contenedor de reemplazo directo para el std::stack adaptador de contenedor con mejor rendimiento que std::vector y std::deque en un contexto de pila. Compatible con C++98/11/14/etc. ( Código ) zlib
ring_span Una implementación ligera de ring_span de Arthur O'Dwyer, también conocida como vista de búfer circular. Compatible con C++98. BSL-1.0 solo cabecera; cmake
strict_variant Una variante compatible con tiempo real/embebido (es decir, compatible con -fno-exceptions / -fno-rtti ), que nunca está vacía, dirigida a C++11. Rápida, previene muchas conversiones implícitas no deseadas. BSL-1.0 cmake
tiny::optional Un reemplazo para std::optional que permite el uso de valores centinela para eliminar la sobrecarga de almacenamiento en memoria. BSL-1.0 cmake
Ygg Una implementación intrusiva en C++11 de contenedores y estructuras de datos de alto rendimiento como un Árbol rojo-negro , un Árbol de intervalos y un Mapa de intervalos. MIT solo cabecera; cmake

Criptografía

Biblioteca Descripción Licencia Configuración
Botan Un kit de herramientas de criptografía. ( Fuente ) BSD 2-Clause "Simplified" make
crypto++ Una biblioteca de clases C++ gratuita de esquemas criptográficos. ( Fuente ) Boost make
gnutls Una biblioteca de comunicaciones seguras que implementa los protocolos SSL, TLS y DTLS y tecnologías relacionadas. ( Fuente ) LGPL-2.1 make
openssl Un kit de herramientas de criptografía de propósito general y comunicación segura robusto, de grado comercial y con todas las funciones. ( Fuente ) Apache-2.0 make
TomCrypt Un kit de herramientas criptográfico bastante completo, modular y portable que proporciona a los desarrolladores una amplia gama de cifrados de bloque conocidos, funciones hash unidireccionales, modos de encadenamiento, generadores de números pseudoaleatorios, criptografía de clave pública y una plétora de otras rutinas. ( Fuente ) dominio público cmake, make

Bases de Datos

Biblioteca Descripción Licencia Configuración
Boost::MySQL Biblioteca cliente de MySQL BSL-1.0
cpp-redis Cliente Redis ligero para C++11: asíncrono, seguro para hilos, sin dependencias, canalización, multiplataforma. ( Doc ) MIT cmake
DTL Hace que los conjuntos de registros ODBC se vean como un contenedor STL ( Cód ) ( Doc )
EasyQtSql Una biblioteca ligera C++11 (basada en Qt) para consultas SQL rápidas y sencillas MIT solo cabecera; qmake
Galera El Galera Cluster es la biblioteca de replicación multi-maestra síncrona (Galera) y una API de Write Set Replication (WSREP) para MySQL/MariaDB ( Src ) GPLv2 cmake, scons
LevelDB Una biblioteca C++ desarrollada por Google que maneja almacenamiento persistente de datos Clave-Valor a escala de miles de millones. ( Doc ) BSD-3 cmake
libpqxx El conector C++ para PostgreSQL ( Src ) BSD-3 cmake, make
lmdb++ Envoltura C++11 para la biblioteca de base de datos LMDB con árbol B+ integrado. Unlicense make
mongocxx Una biblioteca oficial de controladores C++11 para MongoDB ( Doc ). Ofrece APIs optimizadas para operaciones CRUD, indexación y agregación. Compatible con BSON y con características como agrupación de conexiones y mecanismos de autenticación, proporciona soluciones de alto rendimiento y escalables para construir aplicaciones C++ que aprovechan MongoDB. Apache 2.0 cmake
mysql++ Base de datos MySQL y herramientas
nanodbc Un contenedor pequeño, multiplataforma y C++14 para la API nativa C de ODBC MIT cmake
ODB Un sistema ORM (mapeo objeto-relacional) de código abierto, multiplataforma y multidatabase para C++. ODB es compatible con bases de datos relacionales MySQL, SQLite, PostgreSQL, Oracle y Microsoft SQL Server, así como con los estándares de lenguaje C++98/03 y C++11. GPL2 y/o NCUEL
OTL Una biblioteca de bases de datos basada en plantillas C++ para Oracle DB, ODBC y DB2-CLI. ( Código )
Pgfe La API cliente (FrontEnd) de PostgreSQL en C++ moderno Zlib cmake
QTL Una biblioteca de base de datos C++ amigable y liviana para MySQL, SQLite y ODBC. Apache-2.0 make
QUINCE QU eries IN C ++ E xpressions (ORM+EDSL) Boost
QxOrm Una biblioteca de base de datos O bjeto R elacional M apeo (ORM) para C++/Qt, compatible con la mayoría de bases de datos comunes, serialización (JSON, binario, XML); servidor web HTTP independiente multiproceso GPLv3 o Propietario
redis-cpp Una biblioteca cliente ligera de C++17 para ejecutar comandos Redis. MIT solo cabecera; cmake
redis-plus-plus Un cliente de Redis escrito en C++ 11, y compatible con Redis Sentinel, Redis Cluster, pipeline, transacción, pubsub, agrupación de conexiones e interfaz similar a STL Apache-2.0 cmake
SOCI Una biblioteca de bases de datos basada en plugins que incrusta consultas SQL en código C++ regular; los backends compatibles incluyen: DB2, Firebird, MySQL, ODBC (backend genérico), Oracle, PostgreSQL, SQLite3. ( Fuente ) ( Doc ) Boost cmake
SQLAPI++ Una biblioteca middleware de bases de datos en C++ que soporta múltiples sistemas de bases de datos SQL: Oracle, SQL Server, DB2, Sybase, MySQL, PostgreSQL, SQLite, Informix, InterBase / Firebird, SQLBase, SQL Anywhere, ODBC, MariaDB. ( Fuente ) ( Doc ) Personalizada make
SQLiteCPP Un envoltorio C++ SQLite3 delgado y fácil de usar. MIT cmake, meson, vcpkg
SQLite ORM Un L enguaje de D ominio E specífico I ncorporado (EDSL) para SQL, tal como lo entiende SQLite, para C++ moderno. AGPL-3.0, MIT solo cabecera; cmake, vcpkg
sqlpp11 Un lenguaje de dominio específico embebido con seguridad de tipos para consultas y resultados SQL en C++. BSD-2 cmake
taoPQ Una biblioteca cliente ligera de PostgreSQL para C++17 Boost cmake

Enlaces de lenguajes embebidos

Biblioteca Descripción Licencia Configuración
AngelScript Un lenguaje de scripting similar a C++. ZLib
ChaiScript Un lenguaje de scripting embebido fácil de usar para C++. BSD-3-Clause
cling Un intérprete interactivo de C++, construido sobre Clang y LLVM para aprovechar RAD, crear scripts, scripting embebido y generación de código en tiempo de ejecución. ( Src ) Personalizada / LGPL cmake
ExprTk Un motor de análisis y evaluación de expresiones matemáticas en tiempo de ejecución extremadamente eficiente, fácil de usar e integrar. ExprTk admite numerosas formas de semánticas de procesamiento funcional, lógico y vectorial y es muy fácilmente extensible.
Jinx Un lenguaje de scripting diseñado para videojuegos. MIT cmake
spidermonkey.dev Motor JavaScript y WebAssembly de Mozilla.
muparser Una biblioteca de análisis de expresiones matemáticas de alto rendimiento y extensible escrita en C++. BSD-2-Clause cmake
PythonQt Un enlace dinámico de Python para el framework Qt. Ofrece una forma fácil de integrar el lenguaje de scripting Python en aplicaciones C++ Qt. LGPL 2.1
lua Un lenguaje de scripting multiparadigma ligero diseñado principalmente para uso embebido. Biblioteca C. MIT make
sol2 Una biblioteca moderna de C++ para enlazar con Lua. MIT header-only; cmake
v8pp Enlaza funciones y clases de C++ en el motor JavaScript V8. BSL-1.0 header-only; cmake

Embebido/Tiempo Real

Biblioteca Descripción Licencia Configuración
distortos Un RTOS orientado a objetos en C++11 para microcontroladores (ARM, STM32) ( Fuente ) ( Doc ) MPL-2.0 cmake
ETL E mbedded T emplate L ibrary - Biblioteca de plantillas C++03 portátil adaptada para plataformas con recursos limitados (embebidas) ( Fuente ) MIT
QP/C++ Núcleo RTOS: Marcos de trabajo embebidos en tiempo real basados en objetos activos y máquinas de estados GPLv3
µcuREST Marco de trabajo servidor REST/JSON en C++11 para microcontroladores

Metadatos del archivo

Biblioteca Descripción Licencia Configuración
exempi
exiv2
libkexiv2
rarian

Cálculos Financieros

Biblioteca Descripción Licencia Configuración
DataFrame Un DataFrame en C++ para análisis estadístico, financiero y de ML -- en C++ moderno usando tipos nativos y almacenamiento de memoria continuo BSD-3-Clause cmake, make, conan
QuantLib Una biblioteca de finanzas cuantitativas - Una biblioteca gratuita/de código abierto para finanzas cuantitativas BSD modificada

Arquitectura del Motor de Juego

Biblioteca Descripción Licencia Configuración
Anax Un sistema de entidades C++ de código abierto MIT cmake
Anura Un motor de juegos completo y la tecnología detrás de Frogatto & Friends . Personalizada Código Abierto make, vcpkg
BOX2D Un motor de física MIT cmake
EntityPlus Un sistema de entidades y componentes C++17 BSD-1.0 cmake
EntityX Un sistema de entidades-componentes C++ rápido y seguro en tipos MIT cmake
EnTT Una pequeña biblioteca para desarrollo de juegos y más escrita en C++ moderno MIT header-only; cmake, bazel, conan, vcpkg, brew, cppget

Multimedia General

Biblioteca Descripción Licencia Configuración
Kigs-framework Un framework multiplataforma modular de propósito múltiple MIT
openFrameworks MIT
SDL S imple D irectMedia L ayer: acceso de bajo nivel multiplataforma (Windows, macOS, Linux, iOS, Android y otros) a audio, teclado, ratón, joystick y hardware gráfico a través de la API gráfica de la plataforma (OpenGL/Direct3D/Metal/Vulkan) ( Doc ) ( Src ) zlib cmake
SFML S imple y F ápida M ultimedia L ibrería; multiplataforma (Windows, Linux, macOS y próximamente Android & iOS); proporciona una interfaz simple para facilitar el desarrollo de juegos y aplicaciones multimedia. Está compuesta por cinco módulos: sistema, ventana, gráficos (sobre OpenGL), audio y red. zlib/png cmake
SIGIL S onido, E ntrada y G ráficos I ntegrados L ibrería; una biblioteca minimalista, simple y multiplataforma para texto, formas, entrada, audio e imágenes 2D. Plataformas soportadas: Windows, Linux y Raspberry Pi Licencia cmake

Genérico

Biblioteca Descripción Licencia Configuración
Abseil Una colección de código de biblioteca C++ de código abierto de Google diseñada para complementar la biblioteca estándar de C++. ( Doc ) ( Src ) Apache-2.0 cmake
Contenedores Intrusivos Abstractos Más flexible que Boost.Intrusive , pero no compatible con STL.
Au Una biblioteca de unidades físicas compatible con C++14 sin dependencias, con énfasis en seguridad, accesibilidad y rendimiento. ( Doc ) Apache 2.0 solo cabecera
BDE Las bibliotecas centrales del Entorno de Desarrollo Bloomberg de Bloomberg L.P. Apache
Better Enums Enumeraciones reflexivas (enum a string, iteración, etc.) con soporte constexpr. BSD-2 header-only, cmake, make
bitfield.h Facilidad de estructura de campos de bits, más portátil/flexible que la facilidad del lenguaje base.
Boost Una gran colección de bibliotecas genéricas BSL-1.0
CAF The C++ Actor Framework (CAF) es una implementación de código abierto del modelo de actores para C++11 que incluye implementaciones de actores ligeros y rápidos, coincidencia de patrones para mensajes, mensajería transparente a la red, y más BSD
Cinder Una biblioteca desarrollada por la comunidad, gratuita y de código abierto para programación creativa de calidad profesional en C++. ( Doc ) ( Src ) Modified BSD cmake
CommonPP Una biblioteca multipropósito con un fuerte énfasis en obtener métricas de un proyecto. BSD
composite_op.h Introspección básica de miembros de datos de clase, engorrosa y a menudo no reentrante, pero a veces útil.
cpp-mmf Una biblioteca C++98 que encapsula archivos mapeados en memoria para POSIX o Windows
cxxomfort Retrocompatibilidad de características de C++ (C++11 a C++03 y propuestas de C++1y a C++11/C++03).
Dlib Redes, hilos, interfaces gráficas, estructuras de datos, álgebra lineal, aprendizaje automático, análisis de XML y texto, optimización numérica, redes bayesianas, y numerosas otras tareas Boost
eventpp Una biblioteca de eventos en C++ para callbacks, despachador de eventos y cola de eventos. Con eventpp puedes implementar fácilmente el mecanismo de señal y ranura, el patrón publicador y suscriptor, o el patrón observador. Apache 2.0
fcppt Freundlich's C++ Toolkit (fcppt) es una colección de bibliotecas que se centra en mejorar el código general de C++ proporcionando mejores tipos y haciendo uso de la programación funcional.
Folly Biblioteca de código abierto de Facebook. Una biblioteca multiplataforma de componentes C++14 diseñada con practicidad y eficiencia en mente. ( Doc ) Apache-2.0 cmake, vcpkg
GSL Biblioteca de Soporte de las G uías S principales de L enguaje C++, recomendada por Bjarne Stroustrup, Herb Sutter y Colaboradores en las Guías Principales de C++ MIT cmake, vcpkg
gsl-lite Una versión de ISO C++ Guideline Support Library (GSL) para C++98, C++11 y posteriores MIT solo cabecera
GUL14 Biblioteca de Utilidades General para C++14 de DESY : Funciones y tipos de utilidad de uso frecuente, incluyendo utilidades de cadena, funciones estadísticas y numéricas, contenedores, medios de depuración, etc. ( Fuente ) LGPL-2.1 meson, vcpkg
History Framework Moderno de Deshacer/Rehacer para C++17 Unlicense
hspp Una biblioteca experimental para llevar la Programación al Estilo Haskell a C++. Apache-2.0 header-only
IP-DOS (tm) IdeaFarm (tm) Sistema Operativo Distribuido Piggyback: Un entorno de programación de propósito general para el lenguaje C++. Código Abierto Propietario Open Watcom 2.0
JUCE Un kit de herramientas C++ multiplataforma extenso y maduro GPL
Kangaru Un contenedor de inyección de dependencias para C++11 y C++14 MIT
Kerbal Retroadaptación de facilidades modernas de STL a estándares anteriores. ¡Más características! ¡Más constexpr! LGPL-3.0 solo cabecera; cmake
libsourcey Una biblioteca C++14 multiplataforma para redes de alta velocidad y codificación multimedia. HTTP, WebSockets, TURN, STUN, Symple y más. LGPL-2.1 cmake
LLNL/units Una biblioteca C++ en tiempo de ejecución para trabajar con unidades de medida y conversiones entre ellas, y con representaciones de cadenas de unidades y mediciones BSD 3-Clause "New" or "Revised" cmake
Loki Una biblioteca C++ de diseños, que contiene implementaciones flexibles de patrones de diseño e idiomas comunes. MIT make
match(it) Una biblioteca ligera de coincidencia de patrones para C++17 con APIs libres de macros. Apache-2.0 solo cabecera
nonstd-lite Una lista de repositorios *-lite (por ejemplo, span-lite , scope-lite , expected-lite ) que contienen implementaciones C++98/11 de algunos de los tipos de biblioteca propuestos o ya estandarizados de C++17/20/23, como std::span , std::expected etc). BSL-1.0 solo cabecera
nytl Una biblioteca de plantillas de utilidad genérica para C++17. BSL-1.0 solo encabezado
OnPosix Biblioteca C++ que proporciona varias abstracciones (por ejemplo, threading, networking, logging, IPC, etc.) en plataformas POSIX.
Reason XML, xpath, regex, threads, sockets, HTTP, SQL, date-time, streams, encoding and decoding, filesystem, compression GPL
SaferCPlusPlus Sustitutos compatibles seguros para primitivas inseguras de C++, incluyendo punteros, int y std::vector . Boost
Smart Enum to_string , from_string y más para tus enums. BSL-1.0 cmake
units Una biblioteca de análisis dimensional y conversión de unidades en tiempo de compilación construida sobre C++14 sin dependencias MIT solo cabecera
yaal Y et A nother A bstraction L ayer - algoritmos, colecciones, cálculo de precisión arbitraria, analizadores dirigidos por gramática DSL genérica y más CC BY-ND-NC 4.0 cmake
Yato Una biblioteca moderna de C++(14/17) multiplataforma con estilo STL y compatible con STL que implementa contenedores, rangos, iteradores, rasgos de tipo y otras herramientas; sistema de actores; interfaz de configuración con seguridad de tipos. Apache-2.0 cmake
yomm2 Métodos múltiples abiertos para C++17 Boost
zoolib ZooLib es un kit de herramientas C++ con múltiples funciones. MIT

GPS

Biblioteca Descripción Licencia Configuración
gpsd Un conjunto de herramientas multiplataforma (Linux/Unix/BSD, incluyendo Android y OS X) de código abierto y con soporte GPS, como un demonio traductor y replicador para dispositivos GPS, radios AIS y otros sensores de navegación. gpsd está escrito principalmente en C y Python, pero también tiene un wrapper en C++. gpsd está presente en todos los sistemas embebidos móviles. Cada aplicación de Android con conciencia de ubicación es indirectamente un cliente de gpsd . ( Doc ) ( Src ) BSD 2-clause scons

Interfaz gráfica de usuario

Biblioteca Descripción Licencia Configuración
Brisk Framework GUI modular C++20 multiplataforma, con capacidades reactivas y renderizado escalable acelerado por GPU. ( Src ), ( Doc ) GPL2+/Propietaria cmake, vcpkg
Dear ImGui Una biblioteca GUI ligera para C++ con dependencias mínimas, portable, independiente del renderizado, optimizada para uso en aplicaciones con pipeline 3D. MIT vcpkg
FLTK Un toolkit GUI multiplataforma en C++ (Linux, Windows, MacOS) que proporciona funcionalidad GUI moderna y soporta gráficos 3D mediante OpenGL/GLUT. Diseñado para ser pequeño y modular. Incluye un constructor de interfaces. LGPL ver.2
nana Programación GUI multiplataforma en estilo C++ moderno. ( Src ), ( Doc ) BSL-1.0 cmake, vcpkg
nanogui Una biblioteca de widgets multiplataforma minimalista para OpenGL 3.x o superior ( Doc )
OWLNext Actualización moderna de OWL para escribir aplicaciones GUI en C++ estándar en Windows
Slint Un toolkit GUI declarativo para construir interfaces de usuario nativas para escritorio, embebidos y microcontroladores. ( Src ), ( Doc ) GPL 3, Libre de regalías , o Comercial cmake
tiny file dialogs Un conjunto de diálogos de archivo multiplataforma en C/C++ (sin init, sin bucle principal, 6 llamadas de función modales) solo cabecera
U++ Un framework de desarrollo rápido de aplicaciones multiplataforma (Windows, GNU/Linux, macOS) con IDE incluido. Compatible con C++17. ( Doc ) ( Src ) BSD-3-Clause make
WxWidgets Un framework C++ multiplataforma (Windows, GNU/Linux, macOS) libre y de código abierto para escribir aplicaciones GUI avanzadas usando controles nativos. ( Doc ) LGPL Modificada cmake, make
xtd Un framework C++17/20 moderno para crear aplicaciones de consola, GUI y pruebas unitarias en Windows, macOS, Linux, iOS y Android. ( Src ) ( Doc ) MIT cmake

CopperSpice
Biblioteca Descripción Licencia Configuración
CopperSpice Un conjunto de bibliotecas C++ utilizadas para desarrollar aplicaciones de software multiplataforma. Utiliza C++ moderno e idiomático y se integra perfectamente con la STL. CopperSpice se derivó del framework Qt. ( Doc ) ( Src ) LGPL-2.1 cmake
CsSignal Una biblioteca independiente de señales/slots para C++ con conciencia de hilos LGPL-2.1 cmake
CsString Una biblioteca independiente de cadenas para C++ con soporte Unicode LGPL-2.1 cmake
libGuarded Una biblioteca independiente de C++ para multihilos que gestiona el acceso a datos compartidos LGPL-2.1 cmake

GTK+
Biblioteca Descripción Licencia Configuración
evince
flowcanvas
glibmm
goocanvasmm
gtkmm Una interfaz C++ multiplataforma para la biblioteca GUI GTK+ . LGPL
libglademm
libgnomecanvasmm
webkitgtk

Qt
Biblioteca Descripción Licencia Configuración
libdbusmenu-qt Una pequeña biblioteca diseñada para hacer que el intercambio y visualización de estructuras de menús sobre DBus sea simple y fácil de usar. Funciona tanto para QT como para GTK+ y facilita la construcción de menús.
Qt ( Doc ) ( Src )
QuickQanava Una biblioteca de visualización de redes/grafos C++14 / editor de nodos Qt. BSD 2.0 cmake
qwt5 Widgets Qt para Aplicaciones Técnicas
qwtplot3d

U++
Biblioteca Descripción Licencia Configuración
U++ Un framework de desarrollo rápido de aplicaciones multiplataforma en C++ centrado en la productividad de los programadores. Incluye un conjunto de bibliotecas (GUI, SQL, etc.) y un entorno de desarrollo integrado. ( Fuente/Binario ) BSD
upp-components Una colección de paquetes de terceros para U++ como TerminalCtrl , MessageCtrl etc. BSD-3-Clause

Gráficos

Biblioteca Descripción Licencia Configuración
bgfx Una potente biblioteca de renderizado gráfico 2D/3D multiplataforma (Windows, Mac, Linux, iOS, Android, Web) con soporte para shaders y backends de renderizado: DX, OpenGL, Metal, WebGL, Vulkan, etc. ( Doc ) BSD-2 make
cairomm Un wrapper C++ para la biblioteca gráfica cairo que es una biblioteca 2D con soporte para múltiples dispositivos de salida: X Window, Quartz, Win32, buffers de imagen, PostScript, PDF, SVG, OpenGL (experimental). LGPL
dfpsr Un renderizador software 2D, 3D e isométrico con toolkit de GUI para escritorio, dependencias minimalistas, diseñado para mantenimiento a largo plazo y puede ejecutarse sin controladores de aceleración 3D zlib
gegl Ge neric G raphics L ibrary (GEGL) es un framework de procesamiento de imágenes basado en flujo de datos, que proporciona capacidades de procesamiento de punto flotante y procesamiento de imágenes no destructivo. ( Src ) LGPL
io2d Una implementación de referencia de P0267 , la propuesta de API de gráficos 2D para ISO C++ BSL-1.0 cmake
nanovg Una biblioteca de dibujo vectorial 2D con antialiasing en C sobre OpenGL para UI y visualizaciones, con ports a DX11/Metal/bgfx. zlib
nux Un toolkit de OpenGL LGPL v3
pangomm La interfaz oficial C++ para la biblioteca de diseño de fuentes Pango . ( Src ) LGPL v2.1 make
Skia Una biblioteca de gráficos 2D de código abierto escrita en C++. Skia Graphics Engine se utiliza en Google Chrome, Chrome OS, Mozilla Firefox, Android, LibreOffice, Flutter, etc. Skia tiene varios back-ends: rasterización por software, salida (PDF), OpenGL, SVG, etc. New BSD
TXLib TX Library es una pequeña biblioteca de gráficos 2D para Win32 escrita en C++.
ULIS Una biblioteca C++14 multiplataforma para procesamiento genérico de imágenes digitales, rasterizador software 2D, formatos de imagen ilimitados ( u8 , u16 , u32 , float , double ), Diseño de memoria personalizado con orden de bits, Todos los modos de mezcla de píxeles de Photoshop + 11 modos adicionales, Modelos de color (RGB, HSL, HSV, CMYK, ...), Pipelines con gestión de color, Soporte de espacios de color (perfiles icm y independientes del dispositivo), Algoritmos optimizados con multihilo, Algoritmos optimizados con extensiones SIMD (SSE2), Pools de imágenes y cachés para optimizaciones, Almacenamiento en memoria de secuencias de imágenes animadas. Personalizada (gratuita solo para fines no comerciales) cmake

Gráficos (3D)

Biblioteca Descripción Licencia Configuración
assimp Carga de modelos 3D BSD-3 cmake, vcpkg
bgfx Una biblioteca de renderizado multiplataforma, independiente de la API de gráficos, estilo "Trae Tu Propio Motor/Marco de Trabajo". BSD-2 make, vcpkg
Diligent Engine Una biblioteca moderna de gráficos 3D de bajo nivel multiplataforma. Apache-2.0 cmake
Epoxy Un sucesor moderno de GLEW. Abstracta las diferencias entre algunos tipos de contextos GL, lo que a veces lo hace más simple de usar que GLEW. Utilizado por el proyecto GTK+ desde 2015. MIT meson, vcpkg
G3D El G3D Innovation Engine es un motor de juegos 3D de código abierto, multiplataforma (Windows, Linux, Mac OS) y completamente equipado, escrito en C/C++. G3D se utiliza en juegos comerciales, artículos de investigación, simuladores y cursos universitarios. Soporta renderizado por hardware en tiempo real y offline, trazado de rayos, carga de modelos, álgebra lineal y computación GP en GPUs. Soporta formatos 3DS, OBJ, MP4, PNG, JPG, MD3 y muchos otros, incluye una GUI nativa OpenGL con soporte para skins. ( Src ) ( Doc ) BSD-2
GLAD Una biblioteca personalizable y ligera para cargar funciones de OpenGL
GLEW Un cargador de funciones de OpenGL ( Código ) EXTGL/BSD/MIT make, vcpkg
GLFW Un gestor de ventanas OpenGL ( Código ) ( Doc ) zlib/libpng cmake, vcpkg
GLM La biblioteca de matemáticas GL M (OpenGL Mathematics) es una biblioteca de matemáticas en C++ para software gráfico basada en la especificación GLSL . The Happy Bunny /
MIT
solo cabecera; cmake, vcpkg
Godot Un motor de juegos multiplataforma completo para 2D y 3D en C++17 con un editor de interfaz gráfica escrito en sí mismo y un lenguaje de scripting inspirado en Python. MIT scons
hlsl++ Una biblioteca matemática de C++ para renderizado usando sintaxis HLSL. Soporta SSE y NEON MIT solo encabezado
Horde3D Un motor de renderizado 3D pequeño y de código abierto. Está escrito con el objetivo de crear un motor gráfico que ofrezca los efectos visuales impresionantes esperados en los juegos de próxima generación, siendo ligero y lo más limpio posible. EPL
Irrlicht El Motor Irrlicht es un motor 3D en tiempo real de código abierto escrito en C++. Es multiplataforma, utilizando D3D, OpenGL y sus propios renderizadores de software. zlib/libpng make, vcpkg
klein Una biblioteca C++11/14/17 de Álgebra Geométrica Proyectiva optimizada con SSE para gráficos y animación MIT cmake, vcpkg
Magnum Un middleware gráfico ligero y modular en C++11/C++14 para juegos y visualización de datos ( Código ) Personalizada cmake
O3DE El O pen-source 3D E ngine (anteriormente Amazon's Lumberyard) es un motor 3D multiplataforma en C++ para construir juegos AAA, mundos 3D de calidad cinematográfica y simulaciones de alta fidelidad. Incluye simulación física, motor de scripting, redes y más . ( Doc ) Apache 2.0 cmake
Ogre3D OGRE es un Motor de Renderizado de Gráficos Orientado a Objetos - una biblioteca de visualización multipropósito, adecuada para visualización científica, juegos, simulación, realidad virtual y otros proyectos gráficos. Es multiplataforma y muy robusto, con una buena documentación. MIT cmake, vcpkg
Open CASCADE SDK para aplicaciones CAD/CAM/CAE 3D ( Código ) LGPL-2.1 cmake
OpenGL Lenguaje 3D, gráficos y SDK para desarrollar aplicaciones 3D. Khronos (MIT)
OpenSceneGraph OpenSceneGraph es un toolkit de gráficos 3D de alto rendimiento de código abierto, utilizado por desarrolladores de aplicaciones en campos como simulación visual, juegos, realidad virtual, visualización científica y modelado. ( Src ) ( Doc ) Personalizada,
GNU LGPL
cmake, vcpkg
Visionaray Una biblioteca de plantillas de trazado de rayos en C++. MIT cmake
VTK Visualization Toolkit (VTK) es un software de código abierto para manipular y visualizar datos científicos. Incluye herramientas de vanguardia para renderizado 3D, un conjunto de widgets para interacción 3D y amplias capacidades de gráficos 2D. BSD-3 cmake, vcpkg
Vulkan Una API de bajo nivel que elimina muchas de las abstracciones presentes en las API gráficas de generaciones anteriores. Esto es excelente para ofrecer el máximo rendimiento, pero tiene el efecto secundario de exponer más complejidad al desarrollador. Afortunadamente, existen varios tutoriales excelentes para ayudar a superar este obstáculo y volverse productivo rápidamente. Khronos (MIT) make, vcpkg

Imágenes

Biblioteca Descripción Licencia Configuración
Adobe/boost GIL Una biblioteca genérica de alto nivel, enfocada en algoritmos que operan sobre imágenes 2D. Opciones de E/S muy limitadas. BSL-1.0
agge Anti-Grain Evolution. Un motor de gráficos 2D para velocidad y calidad en C++ MIT cmake
FreeImage Un proyecto de biblioteca de código abierto para desarrolladores que desean soportar formatos de imagen gráficos populares como PNG, BMP, JPEG, TIFF y otros GPLv2, GPLv3, FIPL
FreeImageRe Un fork de la biblioteca de código abierto FreeImage v3.18 para soportar actualizaciones de códecs de imagen y ajustes para un uso cómodo. Se mantienen todos los formatos y plugins originales. GPLv2, GPLv3, FIPL cmake
GraphicsMagick Lectura, escritura y manipulación de imágenes en más de 88 formatos principales. Bifurcado de ImageMagick en 2002 Copyright Mercurial
SAIL Lectura y escritura de imágenes estáticas, animadas y multipágina junto con sus metadatos y perfiles ICC. Capacidades de conversión. Se enfoca en simplicidad y velocidad. MIT cmake
stb Un conjunto de bibliotecas orientadas al desarrollo de juegos en C/C++ que incluyen cargador/escritor/redimensionador de imágenes, rasterizador de texto de fuentes, contenedores type-safe, decodificador ogg vorbis, compresor DXT en tiempo real, generador de ruido Perlin, lexer para DSLs pequeños, sprintf rápido y más. MIT, Personalizada header-only
ThorVG Thor Vector Graphics es una biblioteca portátil ligera utilizada para dibujar escenas y animaciones basadas en vectores incluyendo SVG y Lottie. Puede utilizarse libremente en varias plataformas de software y aplicaciones para visualizar contenidos gráficos. ( Fuente ) MIT conan, meson, msys2, vcpkg

Formatos
Biblioteca Descripción Licencia Configuración
djvulibre
imagemagick
Kaitai Struct C++ runtime
libraw
openexr
poppler
qimageblitz
SVG++

Trazado
Biblioteca Descripción Licencia Configuración
Matplot++ Una biblioteca de gráficos C++ basada en gnuplot para visualización de datos. Matplot++ puede aprovechar las siguientes bibliotecas: OpenCV, OpenGL, LAPACK, BLAS, FFTW, JPEG, TIFF, ZLIB, PNG, GLAD, GLFW3. ( Doc ) MIT cmake
plotutils El paquete GNU plotutils contiene libplot , una biblioteca C/C++ para exportar gráficos vectoriales 2-D en múltiples formatos de archivo, tanto vectoriales como de mapa de bits. libplot puede animar gráficos vectoriales 2-D y utiliza una API similar a Postscript para exportación de archivos y animaciones gráficas. GPL
sciplot Una biblioteca moderna de trazado científico en C++ impulsada por gnuplot , con exportación a PDF, SVG, PNG, EPS, etc. MIT header-only; cmake, vcpkg

Procesamiento de Imágenes

Biblioteca Descripción Licencia Configuración
dlib
Halide Un DSL embebido en C++ para procesamiento de alto rendimiento de imágenes y tensores. MIT cmake, vcpkg
ITK - Insight Toolkit ITK es una biblioteca multiplataforma de código abierto que proporciona a los desarrolladores un conjunto extenso de herramientas de software para análisis de imágenes. Desarrollado mediante metodologías de programación extrema, ITK se basa en una arquitectura espacialmente orientada y probada para procesamiento, segmentación y registro de imágenes científicas en dos, tres o más dimensiones. Apache 2.0 cmake
opencv
OTB

Internacionalización

Biblioteca Descripción Licencia Configuración
gettext Biblioteca de internacionalización GNU. GPL make
ICU I nternational C omponents for U nicode es un conjunto maduro y ampliamente utilizado de bibliotecas C/C++ que proporcionan soporte para Unicode y Globalización en aplicaciones de software. ( Fuente ) icu4c/LICENSE make
spirit-po Una pequeña biblioteca que analiza archivos po y proporciona una interfaz similar a GNU libintl. Basada en boost::spirit. BSL-1.0 header-only
uni-algo Implementación de Algoritmos Unicode para C/C++ MIT/Unlicense cmake, conan, vcpkg

Registro

Biblioteca Descripción Licencia Configuración
Backward Imprime trazas de pila con estilo Python, con colores y fragmentos de código fuente, especialmente en fallos. MIT header-only; cmake, conan
Boost.Log Una biblioteca de registro multiplataforma, fácil de usar, extensible y de alto rendimiento. BSL-1.0
clutchlog Sistema de registro de un solo encabezado que se enfoca en DEPURACIÓN versátil en lugar de almacenamiento de eventos de servicio. BSD cmake
cpptrace Biblioteca de trazas de pila simple, portátil y autónoma para C++11 y versiones posteriores. Incluye trazas de pila seguras para señales, trazas de pila en excepciones, fragmentos de código fuente, etc. MIT cmake, conan, vcpkg
glog Biblioteca de registro de Google para C++98 basada en flujos de estilo C++ Licencia bazel, cmake, vcpkg
libassert Biblioteca de aserciones completa para C++ que proporciona diagnósticos de alta calidad para fallos de aserción. MIT cmake, conan, vcpkg
Log4cplus API de registro multiplataforma para C++17 (modelada según la API Java log4j) que proporciona control seguro para hilos, flexible y arbitrariamente granular sobre la gestión y configuración de registros. BSD (dos cláusulas) o Apache 2.0 Autotools, cmake, Visual Studio
Log4cpp Una biblioteca de clases C++ para registro flexible en archivos, syslog, IDSA y otros destinos. LGPL
log4cxx Apache log4cxx es un framework de registro para C++ basado en Apache log4j. ( Fuente ) Apache cmake
lwlog Una biblioteca de registro para C++17 extremadamente rápida, síncrona y asíncrona MIT cmake
Pantheios Una biblioteca API de registro de diagnóstico que ofrece una combinación de seguridad de tipos, eficiencia, genericidad y extensibilidad estilo BSD
plog Un registro portátil y simple para C++ en menos de 1000 líneas de código MPL-2.0
Quill Una biblioteca de registro asíncrona de baja latencia multiplataforma para C++14 MIT cmake
spdlog Una biblioteca de registro para C++ súper rápida MIT header-only; cmake, conan

Manejo de errores

Biblioteca Descripción Licencia Configuración
Boost.LEAF Una biblioteca ligera de manejo de errores para C++11: formato de cabecera única, sin dependencias, sin asignaciones de memoria dinámica, puede usarse con o sin manejo de excepciones, preparada para multi-hilos. ( Fuente ) BSL-1.0 solo cabecera, cmake

Matemáticas

Biblioteca Descripción Licencia Configuración
alglib ALGLIB es una biblioteca multiplataforma (Windows/POSIX/Linux) para análisis numérico y procesamiento de datos. Las características de ALGLIB incluyen: Análisis de datos, Optimización y solucionadores no lineales, Interpolación, Álgebra lineal y solucionadores lineales, FFT y muchos otros. Gratuita (GPL/Personal/Académica) y Comercial
ArrayFire Una biblioteca multiplataforma (Windows/OSX/Linux) de propósito general para HPC (CPU/GPU/OpenCL/CUDA/GPGPU) y computación paralela. Los dominios de ArrayFire son: Algoritmos Vectoriales, Procesamiento de Imágenes, Visión por Computador, Procesamiento de Señales, Álgebra Lineal, Estadísticas y más. ( Src ) Personalizada
Boost.Math Incluye varias contribuciones en el dominio de las matemáticas: Utilidades de Punto Flotante, Constantes Matemáticas, Distribuciones y Funciones Estadísticas, Estadísticas, Funcionales Vectoriales - Normas, Funciones Especiales, Algoritmos de Búsqueda de Raíces y Minimización, Polinomios y Funciones Racionales, Interpolación, Cuadratura y Diferenciación, Filtros, Funciones de Números Complejos, Cuaterniones, Octoniones, Utilidades de Enteros (Máximo Común Divisor y Mínimo Común Múltiplo), Series, Racionales y Fracciones Continuas. BSL-1.0
Boost.Random Proporciona una variedad de generadores y distribuciones para producir números aleatorios con propiedades útiles, como distribución uniforme. BSL-1.0
Boost.SafeNumerics C++14, Aritmética Entera Correcta Garantizada, un reemplazo directo para los tipos enteros incorporados. BSL-1.0 solo cabecera
cpp-measures Una biblioteca C++11 para manejar medidas físicas MPL-2.0 solo cabecera
G+Smo Una biblioteca multiplataforma para análisis isogeométrico ( Doc ) MPL-2.0 cmake
GNU MP bignum C++ interface Una interfaz de clase C++ conveniente que ofrece funciones y operadores sobrecargados. La GMP es una biblioteca C libre para aritmética de precisión arbitraria, que opera con enteros con signo, números racionales y de punto flotante. GNU LGPL v3 y GNU GPL v2
libmpdec++ Una biblioteca C multiplataforma (con envoltorios C++) para aritmética decimal de punto flotante de precisión arbitraria con redondeo correcto. BSD-2-Clause make, nmake
NTL Una Biblioteca para hacer Teoría de Números. NTL es una biblioteca C++ portable y de alto rendimiento que proporciona estructuras de datos y algoritmos para manipular enteros con signo de longitud arbitraria, y para vectores, matrices y polinomios sobre los enteros y sobre campos finitos. LGPLv2.1+
PCGrand PCG es una familia de algoritmos simples, rápidos, eficientes en espacio y estadísticamente buenos para la generación de números aleatorios. A diferencia de muchos RNGs de propósito general, también son difíciles de predecir. Apache
stats++ Software estadístico avanzado y completo: recolección y preprocesamiento de datos, estadísticas, aprendizaje automático y optimización, con código fuente C++ abierto.
StatsLib Una biblioteca de plantillas de funciones de distribución estadística. Apache-2.0 solo cabecera

Teoría de autómatas
Biblioteca Descripción Licencia Configuración
yasmine Un framework C++11 de máquinas de estado UML ( Doc ) ( Src ) Licencia

Biblioteca de Clases para Números
Biblioteca Descripción Licencia Configuración
BigNumber Una clase C++ para crear y calcular enteros de longitud arbitraria Apache 2.0 cmake
Boost.Multiprecision La Biblioteca Multiprecision proporciona tipos enteros, racionales, de punto flotante y complejos en C++ que tienen mayor rango y precisión que los tipos fundamentales (incorporados) ordinarios de C++. BSL-1.0
cln CLN es una biblioteca para cálculos eficientes con todo tipo de números en precisión arbitraria. GPL
CNL C ompositional N umeric L ibrary - tipos numéricos de precisión fija BSL-1.0 cmake, conan
fpm Una biblioteca C++11 de m atemáticas de p unto f ijo que proporciona la funcionalidad de punto flotante de la biblioteca estándar en enteros. Útil si su plataforma objetivo carece de una FPU, o se requieren cálculos deterministas. MIT solo cabecera; cmake
Universal Numbers Una biblioteca de plantillas C++17/20 que proporciona reemplazos plug-in para los tipos aritméticos nativos (entero/decimal/punto fijo/punto flotante/posits/logarítmicos/intervalo) MIT cmake, vcpkg, conan

Geometría computacional
Biblioteca Descripción Licencia Configuración
Boost.Geometry Boost.Geometry (también conocida como G eneric G eometry L ibrary, GGL), define conceptos, primitivas y algoritmos para resolver problemas de geometría. Boost.Geometry contiene un núcleo independiente de dimensiones, independiente del sistema de coordenadas y escalable, basado en conceptos, meta-funciones y despacho por etiquetas. Los algoritmos soportados son: cálculo de área, longitud, perímetro, centroide, envolvente convexa, intersección (recorte), within (punto en polígono), distancia, envelope (caja delimitadora), simplificación, transformación, y mucho más. La biblioteca soporta números aritméticos de alta precisión BSL-1.0
CGAL Biblioteca de algoritmos de geometría computacional GPL-3.0 o comercial cmake
PCL Biblioteca de nubes de puntos
pmp-library Biblioteca de procesamiento de mallas de polígonos
Wykobi Biblioteca de geometría computacional

Teoría de grafos
Biblioteca Descripción Licencia Configuración
Boost.Graph BSL-1.0
CXXGraph Una biblioteca C++17 para representación, manipulación, particionado y algoritmos de grafos AGPL-3.0 header-only; cmake
GTpo Una biblioteca de modelado de grafos dirigidos en C++14, parte del proyecto QuickQanava BSD qmake, cmake
LEMON L ibrería para E ficiente M odelado y O ptimización en N etworks implementa estructuras de datos y algoritmos comunes enfocados en optimización combinatoria, grafos y redes. ( Doc ) Licencia
NGraph Una biblioteca simple de grafos (Network) en C++
OGDF O pen G raph algorithms and D ata structures F ramework - es una biblioteca C++ para algoritmos de grafos, en particular para dibujo automático de grafos. GPL v2 o v3

Álgebra lineal
Biblioteca Descripción Licencia Configuración
Armadillo Una biblioteca de plantillas C++ para álgebra lineal y computación científica que incluye wrappers para OpenBLAS, Intel MKL, LAPACK, ATLAS, ARPACK, SuperLU y FFTW. Útil para ML, reconocimiento de patrones, DSP, bioinformática, estadísticas, finanzas, etc. Apache 2.0
Blasw Un wrapper C++11 para BLAS y partes de LAPACK BSD-3-Clause header-only; cmake
Blaze
Blitz++ Una biblioteca de clases plantilla C++ que proporciona arrays y vectores densos de alto rendimiento, generadores de números aleatorios y vectores pequeños. GPL-3.0, LGPL-3.0, Custom cmake
Boost.uBLAS Una biblioteca de clases plantilla C++ que proporciona funcionalidad BLAS nivel 1, 2, 3 para matrices densas, empaquetadas y dispersas. Utiliza plantillas de expresión. BSL-1.0
C++ Matrix Biblioteca de matemáticas matriciales de alto rendimiento y precisa (ej. casos límite) con operadores aritméticos de plantillas de expresión BSD-3-Clause cmake, make
DecompLib Una biblioteca C++11 para descomponer un vector en un conjunto de vectores base ponderados definidos positivos. MIT header-only
Dlib - herramientas de álgebra lineal
Eigen Una biblioteca de plantillas C++ para álgebra lineal: matrices, vectores, solucionadores numéricos y algoritmos relacionados. MPL2 cmake, conan
ETL
IT++
Matrix Biblioteca de Computación Científica fácil de usar en/para C++ disponible para Linux y Windows. MIT cmake
NumCpp Una biblioteca de plantillas C++ que implementa NumPy de Python MIT header-only; cmake, vcpkg, conan
PETSc Un conjunto de estructuras de datos y rutinas para la solución paralela de aplicaciones científicas modeladas por ecuaciones diferenciales parciales. Soporta MPI, y GPUs mediante CUDA o OpenCL, así como híbrido MPI-GPU.
Spectra Sp arse E igenvalue C omputation T oolkit as a R edesigned A RPACK es una biblioteca C++ de código abierto para problemas de valores propios a gran escala, construida sobre la biblioteca de álgebra lineal Eigen (también de código abierto y header-only). ( Src ) MPL-2.0 header-only; cmake, vcpkg
Tense Una biblioteca rápida de matrices y tensores con plantillas de expresión C++17 BSD-3-Clause header-only; cmake
xtensor Una biblioteca C++ destinada al análisis numérico con expresiones de arrays multidimensionales. BSD

Aprendizaje Automático
Biblioteca Descripción Licencia Configuración
Dlib Herramientas de aprendizaje automático
FANN Biblioteca de R ed N euronal A rtificial R ápida
gaenari Árbol de decisión incremental basado en C++17 Apache-2.0 cmake
liblinear
libtorch Interfaz C++ para la popular biblioteca Python PyTorch (el backend está escrito en C++) Estilo BSD cmake
MLPACK Paquete de aprendizaje automático
Shogun Caja de herramientas de aprendizaje automático a gran escala
stats++
tensorflow Marco de aprendizaje automático de código abierto para todos; proporciona API C++ estable y está escrito principalmente en C++ Apache-2.0 bazel

Cálculos Numéricos
Biblioteca Descripción Licencia Configuración
LibBF Una biblioteca de cálculo numérico de precisión arbitraria desarrollada por Bellard con un programa de ejemplo que calcula π a miles de millones de bits MIT

Optimización
Biblioteca Descripción Licencia Configuración
ceres-solver Una biblioteca C++ de código abierto para modelar y resolver problemas de optimización grandes y complejos. Es una biblioteca rica en características, madura y de alto rendimiento que se ha utilizado en producción en Google desde 2010. Apache cmake, conan
OptimLib Una biblioteca C++11 de métodos de optimización numérica para funciones no lineales.

Manipulaciones de expresiones simbólicas
Biblioteca Descripción Licencia Configuración
CasADi Un marco simbólico para optimización no lineal y diferenciación algorítmica. Soporta generación de código C++ para expresiones simbólicas y conexión dinámica de código compilado generado. LGPLv3.0 cmake
ExprTk The C++ Mathematical Expression Toolkit Library (ExprTk) es un motor de análisis y evaluación de expresiones matemáticas en tiempo de ejecución extremadamente eficiente, fácil de usar e integrar. ExprTk soporta numerosas formas de semánticas de procesamiento funcional, lógico y vectorial y es muy fácilmente extensible. MIT header-only
GiNaC Una biblioteca para crear sistemas integrados que incorporan manipulaciones simbólicas junto con áreas más establecidas de la informática (como aplicaciones numéricas intensivas en cálculo, interfaces gráficas, etc.) bajo un mismo techo. GPLv3
mathiu.cpp Un sistema simple de álgebra computacional en C++17 Apache-2.0 cmake
SEMT Una diferenciación simbólica en tiempo de compilación Licencia make
SymbolicC++ Un sistema de álgebra computacional de propósito general GPLv2 autoconf
SymCC Un envoltorio de compilador que incorpora ejecución simbólica en el programa durante la compilación, y una biblioteca de soporte en tiempo de ejecución asociada. En esencia, el compilador inserta código que calcula expresiones simbólicas para cada valor en el programa. El cálculo real ocurre a través de llamadas a la biblioteca de soporte en tiempo de ejecución. GPLv3 cmake
SymEngine Una biblioteca independiente y rápida de manipulación simbólica en C++. MIT cmake
ViennaMath Una biblioteca matemática simbólica que permite una instanciación, manipulación y evaluación conveniente de expresiones matemáticas en tiempo de ejecución y tiempo de compilación. MIT cmake

Metaprogramación

Biblioteca Descripción Licencia Configuración
Boost.CallableTraits Una biblioteca C++11/17 para la inspección y manipulación en tiempo de compilación de todos los tipos 'callable'. Sucesora de Boost.FunctionTypes. BSL-1.0 header-only
Boost.Hana Una nueva biblioteca de metaprogramación para tipos y valores BSL-1.0
Boost.Metaparse Una biblioteca de análisis sintáctico en tiempo de compilación, que produce tipos, valores y metafunciones a partir de cadenas en tiempo de compilación BSL-1.0
Boost.Mp11 Una biblioteca de metaprogramación C++11 para la manipulación en tiempo de compilación de estructuras de datos que contienen tipos. BSL-1.0 header-only
Boost.MPL Una biblioteca original de metaprogramación, orientada a C++03, lenta BSL-1.0
Boost.PFR Una biblioteca C++14 para reflexión básica (sin macros): visita de miembros de un tipo definido por el usuario por índice, streaming de E/S. BSL-1.0 header-only
Boost.Proto Una biblioteca para construir EDSLs respaldados por expression templates BSL-1.0
Brigand Utiliza metafunciones eager, optimizado para el mejor rendimiento
CoMeta Una biblioteca ligera de metaprogramación C++14 header-only
Meta Utiliza metafunciones eager, punto intermedio entre metal y brigand respecto al rendimiento
Metal Utiliza metafunciones eager, 100% compatible con SFINAE
refl-cpp Una biblioteca moderna de reflexión en tiempo de compilación para C++ con soporte para sobrecargas, plantillas, atributos y proxies
Refureku Una biblioteca C++17 de reflexión en tiempo de ejecución y generación de código MIT cmake
visit_struct Una biblioteca de reflexión miniatura, que proporciona visitantes de estructuras para C++11/14. Autocontenida, 200-400 líneas de código dependiendo de cómo se cuente.

PDF

Biblioteca Descripción Licencia Configuración
HARU Una biblioteca gratuita, multiplataforma y de código abierto para generar archivos PDF. ( Doc ) ( Src ) Zlib cmake
JagPDF Una biblioteca gratuita y de código abierto para generar PDF ( Doc ) MIT
PoDoFo Una biblioteca C++17 portátil y gratuita para trabajar con PDF LGPL-2.0 cmake, conan, vcpkg
PDF-Writer Una biblioteca C++ de alto rendimiento para crear, modificar y analizar archivos PDF Apache-2.0 cmake, conan, vcpkg

Física y Simulaciones

Biblioteca Descripción Licencia Configuración
Bullet Una simulación física para juegos, efectos visuales, robótica y aprendizaje por refuerzo
HELICS Un framework de co-simulación para sincronizar tiempo e intercambiar datos entre diferentes tipos de simuladores BSD 3-Clause "New" or "Revised" cmake
ProjectCHRONO Un motor de simulación multi-física de código abierto
ReactPhysics3D Una biblioteca de motor físico C++ para simulaciones 3D y juegos

Robótica

Percepción
Biblioteca Descripción Licencia Configuración
GTSAM Fusión de sensores, SLAM, SFM, VO, Visión por computadora ( Src ) BSD cmake
opencv Visión por computadora y percepción, Calibración, Emparejamiento de características ( Src ) ( Doc ) BSD, Apache 2 cmake

Serialización

Biblioteca Descripción Licencia Configuración
Boost.Serialization BSL-1.0
C++ XML objects
cereal Una serialización C++11 BSD
cista Una biblioteca de serialización y reflexión C++ simple, de alto rendimiento y sin copia. ( Src ) MIT cmake
cppcodec Una biblioteca C++11 para codificar/decodificar base64, base32 y hexadecimal con API consistente y flexible MIT header-only
GPDS Un serializador de datos de propósito general para serializar objetos hacia y desde XML. Utiliza TinyXML internamente.
gSOAP Una serialización XML precisa
iguana Un motor de serialización moderno, universal y fácil de usar desarrollado en C++17, basado en Reflexión en tiempo de compilación. Formatos soportados: JSON, XML, definidos por el usuario. Apache-2.0 cmake
jios Serialización JSON MIT cmake
protobuf Protocol Buffers (también conocido como protobuf) es el mecanismo neutral de lenguaje y plataforma de Google para serializar datos estructurados, incluyendo compilador de archivos .proto. ( Doc ) Personalizada bazel, cmake
rpnx-serial Una biblioteca que puede (de)serializar tipos como std::map , std::vector , etc.
Serio Una biblioteca de serialización C++ rápida y ligera BSD-3-Clause header-only; cmake
ThorsSerializer Una biblioteca de serialización C++ para JSON MIT make
yaml-cpp
YAS Y et A nother S erialization es una biblioteca C++11 sin dependencias de bibliotecas de terceros. Los archivos pueden ser binarios, texto, JSON Boost header-only

Serialización binaria
Biblioteca Descripción Licencia Configuración
binn Una biblioteca de serialización binaria diseñada para ser compacta, rápida y fácil de usar, siendo una implementación del formato del mismo nombre.
blobify Una biblioteca C++17 que infiere el diseño serializado únicamente a partir de la definición de la estructura. Boost header-only; cmake
bson-cxx Una implementación C++11 del formato BSON . scons
fast_ber Una serialización de alto rendimiento C++11 que utiliza reglas de codificación BER/DER. El diseño de codificación se define mediante esquemas ASN.1.
UBjsonCpp Una biblioteca de lectura-escritura UBJson de alto rendimiento basada en C++14

Ordenación

Biblioteca Descripción Licencia Configuración
Cpp-sort Una colección de varios algoritmos de ordenamiento en un paquete simple. MIT
Indiesort Una plantilla de función que permite que std::sort (y otras funciones de ordenamiento de acceso aleatorio) se utilicen con contenedores de acceso no aleatorio. También mejora el rendimiento al ordenar objetos grandes en contenedores y arrays de acceso aleatorio. zlib
Timsort Una plantilla de función de ordenamiento estable que supera a los algoritmos basados en quicksort incluyendo std::sort , para datos invertidos o semi-ordenados. MIT

Sistema

Biblioteca Descripción Licencia Configuración
Infoware Una biblioteca C++ para obtener información del sistema y hardware, sin necesidad de usar la línea de comandos. Creative Commons v1.0 cmake

Terminal

Biblioteca Descripción Licencia Configuración
cli Una biblioteca multiplataforma para interfaces de línea de comandos interactivas en C++ moderno. BSL-1.0 header-only; cmake, make, nmake, vcpkg
cwidget Una biblioteca de interfaz de terminal de alto nivel para C++, modelada sobre GTK+ y Qt, pero usando curses como su capa de visualización GPL v2.0 make
replxx Un reemplazo de readline y libedit que soporta UTF-8, resaltado de sintaxis y sugerencias.

Pruebas

Biblioteca Descripción Licencia Configuración
bandit Pruebas unitarias amigables para C++11. ( Fuente ) MIT cmake
Boost.Test Biblioteca de pruebas unitarias para C++03/11/14/17, disponible en una amplia gama de plataformas y compiladores. ( Fuente ) BSL-1.0 cmake, b2
Catch2 Un framework de pruebas moderno y nativo de C++ para unit-tests, TDD y BDD - usando C++14, C++17 y posteriores Boost cmake
cppunit Un port a C++ del famoso framework JUnit para pruebas unitarias LGPL-2.1 make
CUTE Hacer las P ruebas U nitarias de C ++ M ás F áciles (sin dependencia de inicialización estática para registro), integrado en Cevelop para TDD MIT header-only
doctest El framework de pruebas más ligero y con más funciones en un solo header para unit tests y TDD MIT header-only; cmake
ELFspy Pruebas en aislamiento con fakes y spies - Solo Linux GPL-2.0 make
faker-cxx Una biblioteca Faker moderna de C++20 para generar datos de prueba. MIT cmake
Google Test Framework de Pruebas y Mocking de Google. ( Fuente ) BSD 3-Clause "New" or "Revised" bazel, cmake
lest Un framework diminuto nativo de C++11 para unit-tests, TDD y BDD (incluye variante C++98). Boost header-only; cmake
liblittletest Un framework de pruebas portable LGPL-2.1 header-only
snitch Un framework de pruebas ligero para C++20. Boost cmake
tunit Una biblioteca de pruebas unitarias moderna de C++17 en Windows, macOS, Linux, iOS y Android. Sitio oficial MIT cmake

Texto

Codificación
Biblioteca Descripción Licencia Configuración
strsuite Una biblioteca C++20 para gestionar cadenas con diferentes codificaciones LGPL3.0 cmake
uchardet Adivina la codificación de una cadena, básicamente igual que la función uchardet en Python. MOZILLA PUBLIC LICENSE v1.1 cmake
win-iconv Una biblioteca de conversión de codificación de conjuntos de caracteres para Linux y Mac. La implementación de Windows de iconv se basa en la API de Conversión de Conjuntos de Caracteres de Win32. dominio público cmake

Diferenciar/Parchear
Biblioteca Descripción Licencia Configuración
diff_match_patch Crear y aplicar parches para cadenas (requiere Qt) Apache 2.0 qmake

Formato
Biblioteca Descripción Licencia Configuración
coformat Una biblioteca C++ complementaria para std::format que permite la colorización y estilización de texto. dominio público solo cabecera
fmt Una biblioteca de formato de código abierto que proporciona una alternativa rápida y segura a stdio de C y iostream s de C++. Prototipo para la familia std::format de C++20. Licencia cmake, conan

Analizar
Biblioteca Descripción Licencia Configuración
BNFlite Una biblioteca ligera de análisis gramatical MIT header-only
Boost.Spirit Un conjunto de bibliotecas C++17 para análisis y generación de salida implementadas como L enguajes E mbutidos E specíficos de D ominio (DSEL) usando Expression templates y Template Meta-Programming. Las bibliotecas Spirit permiten escribir una gramática objetivo exclusivamente en C++. ( Src ) ( Doc ) BSL-1.0 cmake
CTRE Expresiones regulares rápidas de T iempo de C ompilación con soporte para coincidencia/búsqueda/captura durante tiempo de compilación o ejecución. Apache-2.0 header-only, cmake, vcpkg
lexy Una biblioteca combinatoria de analizadores C++17 que permite escribir un analizador especificándolo en un DSL conveniente de C++ con toda la flexibilidad y control de un analizador escrito a mano. Soporta UTF-8/16/32. ( Doc ) BSL-1.0 cmake
PEGTL La B iblioteca de P lantillas de G ramática de E xpresiones de A nálisis (PEGTL) es una biblioteca combinatoria de analizadores C++17 header-only sin dependencias para crear analizadores según una Gramática de Expresiones de Análisis (PEG). Boost header-only

Buscar
Biblioteca Descripción Licencia Configuración
clucene CLucene es un motor/API de indexación y búsqueda multiplataforma, completo y de código abierto. ( Código ) ( Doc ) LGPL v2.1 cmake
Step20 Algoritmo en línea de Ukkonen para construir Suffix tree , algoritmo de Manber para construir Suffix array . MIT header-only
xapian Un motor de búsqueda de código abierto con capacidades de indexación ( Código ) ( Doc ) GPL v2+ make

Motor de Plantillas
Biblioteca Descripción Licencia Configuración
inja Un motor de plantillas para C++17. MIT header-only; cmake, conan, vcpkg, etc.
Jinja2C++ Una implementación en C++14/17 de plantillas Jinja2 MPL-2.0 cmake, conan

Control de Versiones

Biblioteca Descripción Licencia Configuración
coo-semver Una biblioteca de operaciones C++ para números de versión semántica.
LibGit2 Biblioteca central del sistema de control de versiones Git.

Video

Biblioteca Descripción Licencia Configuración
crystalhd
gstreamermm
libmatroska
libVLC
mjpegtools
OpenH264 Una biblioteca de código abierto multiplataforma y multiarquitectura que soporta codificación y decodificación H.264 ( Fuente ) BSD-2 Clause meson

Web

Biblioteca Descripción Licencia Configuración
Chromium Embedded
cpp-jwt
Drogon Un framework de aplicación web HTTP basado en C++14/17 que se ejecuta en Linux/macOS/Unix/Windows.
ffead-cpp Un f ramework f or E nterprise A pplication D evelopment en C ++, compatible con HTTP1/HTTP2/HTTP3, soporta múltiples backends de servidor Apache 2.0 cmake
libhttpserver Una biblioteca C++ para construir servidores web RESTful de alto rendimiento. Construida sobre libmicrohttpd para proporcionar una API simple a los desarrolladores para crear servicios HTTP en C++. LGPL-v2.1 autotools
libkcddb
liblastfm
libmusicbrainz5
libnavajo
Molybden Un SDK para construir aplicaciones de escritorio C++ multiplataforma con interfaz gráfica HTML/CSS/JS. ( Doc ) ( Src ) Licencia npm
oatpp Un framework web potente, portable, ligero y sin dependencias para IoT y servicios web de alto rendimiento.
QtWebApp Servidor HTTP(s) en C++ inspirado en Java Servlets
Tufão Un framework web asíncrono para C++11 construido sobre Qt ( Doc ) LGPL-2.1, GPL-2.0 cmake
uri-template Expansión de Plantillas URI y coincidencia inversa para C++ Apache 2.0 cmake
userver El Framework Asíncrono de C++ Apache 2.0 cmake
Wt Widgets y bloques de construcción para aplicaciones web, seguridad integrada, renderizado PDF, pintura 2D y 3D, ORM, gráficos, frameworks de autenticación. ( Doc ) ( Src ) GNU GPL o Comercial

Véase también

Documentación de C para Bibliotecas No-ANSI/ISO

Enlaces externos

1. Lista de frameworks de pruebas unitarias para C++ — en Wikipedia
2. Lista curada de bibliotecas (increíbles) de C++ solo de cabecera — en GitHub
3. Lista curada de bibliotecas (increíbles) de C++ y C — en GitHub
4. Bibliotecas Boost para C++ — en Boost.org
5. Lista extensa de juegos y frameworks de código abierto en C++ — en GitHub.io