1. Propósito del documento
Este texto es una lista de bibliotecas de código abierto reunidas por categorías para que los desarrolladores de C++ puedan encontrar rápidamente la funcionalidad que necesitan.
Las bibliotecas deben poder descargarse en forma de código fuente, y como la información puede estar desactualizada o los enlaces pueden ser incorrectos, el usuario debe verificarlo por su cuenta.
2. Uso general, comunicaciones y GUI
Boost, Folly, Dlib y JUCE, entre otras, son bibliotecas de propósito general que ofrecen varias funciones.
En el área de comunicaciones están Boost.Asio, POCO, ZeroMQ, Thrift y REST SDK, que se usan para redes, HTTP, mensajería y desarrollo de servicios distribuidos.
En GUI se incluyen Qt, GTKmm, wxWidgets y FLTK.
3. Gráficos, multimedia y juegos
SDL, SFML y OpenFrameworks se usan en aplicaciones multimedia.
OpenGL, Ogre3D, bgfx, GLFW, GLM y Assimp, entre otras, soportan gráficos 2D y 3D, renderizado y procesamiento de modelos.
OpenCV se usa para procesamiento de imágenes, y la familia de VLC y GStreamer se aprovecha para reproducción de video y procesamiento de medios.
4. Matemáticas, IA y cómputo de alto rendimiento
Eigen, Armadillo y Boost.uBLAS se usan para cálculos de álgebra lineal.
Dlib, MLPACK, Shogun y liblinear ofrecen funciones de machine learning.
TBB, OpenMP y las bibliotecas relacionadas con CUDA y OpenCL soportan procesamiento paralelo y cómputo de alto rendimiento.
5. Procesamiento y almacenamiento de datos
La familia Boost.Container ofrece diversas estructuras de datos.
protobuf, cereal y yaml-cpp, entre otras, se usan para serialización de objetos, mientras que RapidJSON, jsoncpp y TinyXML se encargan del procesamiento de JSON y XML.
ODB, SOCI, sqlpp11 y mysql++, entre otras, ofrecen conexión a bases de datos y funciones ORM.
6. Herramientas de apoyo al desarrollo
Google Test, Catch y Boost.Test se usan para pruebas unitarias, y Celero soporta benchmarking de rendimiento.
OpenSSL, Crypto++ y Botan ofrecen funciones de cifrado.
spdlog, Log4cpp y plog son bibliotecas representativas de C++ para registro de logs.
7. Otras áreas
También se incluyen bibliotecas de áreas diversas como internacionalización, cálculos financieros, sistemas embebidos, sistemas en tiempo real, PDF, búsqueda, gestión de configuración e integración con lenguajes de scripting.
En conjunto, este documento es una lista de referencia para explorar bibliotecas según la funcionalidad necesaria en proyectos de C++.
2 comentarios
La versión en coreano tuvo su última actualización en 2016, así que parece mejor ver el original.
Uf, recién me enteré por este post de que existía un sitio coreano de cppreference y me puse feliz...
Pero parece que tendré que seguir usando el sitio en inglés, como antes.