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.
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.
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.
Un gestor de paquetes para supercomputadoras, Linux y macOS. Facilita la instalación de software científico. No está vinculado a un lenguaje particular.
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
)
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
)
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.
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
)
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
)
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.
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
)
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
:)
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
)
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.
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
)
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.
Un framework que proporciona soporte multiplataforma JSON-RPC (llamada a procedimiento remoto) para C++, completamente compatible con JSON-RPC 2.0 & 1.0.
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).
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
)
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.
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.
Concurrencia de alto rendimiento para C++. parallel_for, Futures, pipelines, timers, tareas temporizadas/periódicas y estructuras de datos concurrentes.
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
)
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
)
Un pequeño framework multiplataforma para aplicaciones concurrentes y dirigidas por eventos en C++ utilizando modelos de actores y publicación-suscripción.
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.
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
)
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.
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.
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.
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.
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
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.
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
)
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
)
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
)
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
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
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
)
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
)
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
)
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
)
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
)
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.
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.
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
)
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
)
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.
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.
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
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
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
)
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
)
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
)
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.
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
)
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.
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
El C++ Actor Framework (CAF) es una implementación de código abierto del modelo de actores C++11 que presenta implementaciones de actores ligeras & rápidas, coincidencia de patrones para mensajes, mensajería transparente en red y más
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
Una biblioteca de eventos C++ para devoluciones de llamada, despachador de eventos y cola de eventos. Con eventpp puedes implementar fácilmente el mecanismo de señal y ranura, el patrón de publicador y suscriptor, o el patrón de observador.
Freundlich's C++ Toolkit (fcppt) es una colección de bibliotecas que se centran en mejorar el código C++ general proporcionando mejores tipos y haciendo uso de la programación funcional.
Una biblioteca C++20 multiplataforma para programación orientada a secuencias, similar a los rangos de C++20, pero utiliza un modelo de iteración basado en cursores que es una generalización de los índices de arreglo. (Doc)
Biblioteca de código abierto de Facebook. Una biblioteca multiplataforma de componentes C++14 diseñados pensando en la practicidad y la eficiencia. (Doc)
Implementación de la biblioteca C++ Core Guidelines Support Library, recomendada por Bjarne Stroustrup, Herb Sutter y compañía en las C++ Core Guidelines
Biblioteca de utilidades generales para C++14 de DESY: funciones y tipos de utilidad de uso frecuente, incluyendo utilidades de cadenas, funciones estadísticas y numéricas, contenedores, medios de depuración, etc. (Src)
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 medidas
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 C++17/20/23 propuestos o ya estandarizados, como std::span, std::expected etc).
¡Las bibliotecas estándar de C++ del mañana hoy! Una colección de bibliotecas C++ propuestas para estandarización, que coinciden con las últimas versiones de las propuestas de C++. (Doc)
Un entorno de ejecución C++ moderno y kit de herramientas para desarrolladores con CLI, flujo de trabajo de compilación, redes, integración de registro de paquetes y bibliotecas modulares para construir aplicaciones C++
Una biblioteca moderna 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.
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
)
Una biblioteca GUI ligera para C++ con dependencias mínimas, portable, independiente del renderizado, optimizada para uso en aplicaciones con pipeline 3D.
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.
Un framework C++ multiplataforma (Windows, GNU/Linux, macOS) libre y de código abierto para escribir aplicaciones GUI avanzadas usando controles nativos. (
Doc
)
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
)
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.
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
)
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
)
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).
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
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
)
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.
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)
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.
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
)
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
.
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.
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.
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.
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
)
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.
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
)
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.
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.
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
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.
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.
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.
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
)
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
)
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.
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.
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
)
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.
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.
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
)
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.
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
)
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.
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.
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.
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.
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.
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++.
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.
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)
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
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
)
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.
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.
Una biblioteca de clases plantilla C++ que proporciona arrays y vectores densos de alto rendimiento, generadores de números aleatorios y vectores pequeños.
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.
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.
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
)
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
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.
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.
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.
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.
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.
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.
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
Una biblioteca de reflexión en miniatura, que proporciona visitantes de estructuras para C++11/14. Autónoma, 200-400 líneas de código según cómo se cuente.
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.
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
)
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.
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.
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.
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.
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
)
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
)
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).
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++.
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
)