1. Objetivo do documento
Este texto é uma lista de bibliotecas de código aberto organizadas por área para que desenvolvedores C++ possam encontrar rapidamente os recursos de que precisam.
As bibliotecas devem estar disponíveis para download em formato de código-fonte, e as informações podem estar desatualizadas ou conter links incorretos, portanto os usuários devem verificá-las por conta própria.
2. Uso geral, comunicação e GUI
Boost, Folly, Dlib, JUCE e outras são bibliotecas de uso geral que oferecem diversas funcionalidades.
Na área de comunicação há Boost.Asio, POCO, ZeroMQ, Thrift, REST SDK e outras, usadas no desenvolvimento de redes, HTTP, mensageria e serviços distribuídos.
Na área de GUI estão incluídas Qt, GTKmm, wxWidgets, FLTK e outras.
3. Gráficos, multimídia e jogos
SDL, SFML e OpenFrameworks são usados em aplicações multimídia.
OpenGL, Ogre3D, bgfx, GLFW, GLM, Assimp e outros dão suporte a gráficos 2D/3D, renderização e processamento de modelos.
OpenCV é usado para processamento de imagens, enquanto as famílias VLC e GStreamer são usadas para reprodução de vídeo e processamento de mídia.
4. Matemática, IA e computação de alto desempenho
Eigen, Armadillo e Boost.uBLAS são usados em cálculos de álgebra linear.
Dlib, MLPACK, Shogun e liblinear oferecem recursos de machine learning.
Bibliotecas relacionadas a TBB, OpenMP, CUDA e OpenCL dão suporte a processamento paralelo e computação de alto desempenho.
5. Processamento e armazenamento de dados
A família Boost.Container oferece diversas estruturas de dados.
protobuf, cereal, yaml-cpp e outras são usadas para serialização de objetos, enquanto RapidJSON, jsoncpp, TinyXML e outras cuidam do processamento de JSON e XML.
ODB, SOCI, sqlpp11, mysql++ e outras oferecem conexão com bancos de dados e recursos de ORM.
6. Ferramentas de apoio ao desenvolvimento
Google Test, Catch e Boost.Test são usados para testes unitários, enquanto Celero dá suporte a benchmarking de desempenho.
OpenSSL, Crypto++ e Botan oferecem recursos de criptografia.
spdlog, Log4cpp e plog são bibliotecas C++ representativas para registro de logs.
7. Outras áreas
Também estão incluídas bibliotecas de diversas áreas, como internacionalização, cálculos financeiros, embarcados, sistemas em tempo real, PDF, busca, gerenciamento de configuração e integração com linguagens de script.
No geral, este documento é uma lista de referência para explorar bibliotecas por funcionalidade necessária em projetos C++.
2 comentários
A versão coreana teve a última atualização em 2016, então acho melhor consultar o original
Nossa, eu nem sabia que existia um site coreano do cppreference; fiquei feliz ao descobrir por este post...
Mas acho que vou ter que continuar usando o site em inglês como antes.