1. Mục đích tài liệu
Bài viết này là danh sách tổng hợp các thư viện mã nguồn mở theo từng lĩnh vực để nhà phát triển C++ có thể nhanh chóng tìm được chức năng cần thiết.
Các thư viện phải có thể tải về dưới dạng mã nguồn; do thông tin có thể đã cũ hoặc liên kết có thể sai, người dùng cần tự kiểm tra.
2. Đa dụng, truyền thông, GUI
Boost, Folly, Dlib, JUCE, v.v. là các thư viện đa dụng cung cấp nhiều chức năng.
Trong lĩnh vực truyền thông có Boost.Asio, POCO, ZeroMQ, Thrift, REST SDK, v.v., được dùng để phát triển mạng, HTTP, messaging và dịch vụ phân tán.
Lĩnh vực GUI bao gồm Qt, GTKmm, wxWidgets, FLTK, v.v.
3. Đồ họa, đa phương tiện, game
SDL, SFML, OpenFrameworks được dùng cho các ứng dụng đa phương tiện.
OpenGL, Ogre3D, bgfx, GLFW, GLM, Assimp, v.v. hỗ trợ đồ họa 2D/3D, rendering và xử lý mô hình.
OpenCV được dùng cho xử lý hình ảnh; các hệ thư viện như VLC và GStreamer được dùng cho phát video và xử lý media.
4. Toán học, AI, tính toán hiệu năng cao
Eigen, Armadillo, Boost.uBLAS được dùng cho tính toán đại số tuyến tính.
Dlib, MLPACK, Shogun, liblinear cung cấp các chức năng machine learning.
Các thư viện liên quan đến TBB, OpenMP, CUDA và OpenCL hỗ trợ xử lý song song và tính toán hiệu năng cao.
5. Xử lý và lưu trữ dữ liệu
Nhóm Boost.Container cung cấp nhiều cấu trúc dữ liệu khác nhau.
protobuf, cereal, yaml-cpp, v.v. được dùng để tuần tự hóa đối tượng; RapidJSON, jsoncpp, TinyXML, v.v. đảm nhiệm xử lý JSON/XML.
ODB, SOCI, sqlpp11, mysql++, v.v. cung cấp kết nối cơ sở dữ liệu và chức năng ORM.
6. Công cụ hỗ trợ phát triển
Google Test, Catch, Boost.Test được dùng cho unit test, còn Celero hỗ trợ benchmark hiệu năng.
OpenSSL, Crypto++, Botan cung cấp chức năng mã hóa.
spdlog, Log4cpp, plog là các thư viện C++ tiêu biểu để ghi log.
7. Các lĩnh vực khác
Tài liệu cũng bao gồm thư viện trong nhiều lĩnh vực như quốc tế hóa, tính toán tài chính, nhúng, hệ thống thời gian thực, PDF, tìm kiếm, quản lý cấu hình và tích hợp ngôn ngữ script.
Nhìn chung, đây là danh sách tham khảo để tìm thư viện theo chức năng cần thiết trong các dự án C++.
2 bình luận
Bản tiếng Hàn được cập nhật lần cuối từ năm 2016 nên có lẽ nên xem bản gốc.
Ôi trời, đọc bài này tôi mới biết là có trang cppreference tiếng Hàn nên đã vui lắm..
Có vẻ vẫn phải dùng trang tiếng Anh như trước thôi.