高质量C++库存档

zxl19 2021-06-01

一些实用或者看起来很有意思的C++库存档。

库管理

  1. microsoft/vcpkg
  2. xmake-io/xmake
  3. conan-io/conan
  4. conda/conda
  5. mamba-org/mamba

开发框架

  1. cpp-main/cpp-tbox
  2. libsigcplusplus/libsigcplusplus

文件

文件系统

  1. gulrak/filesystem

文件压缩

  1. lz4/lz4
  2. google/snappy
  3. r-lyeh-archived/bundle
  4. ctabin/libzippp

命令行输出

输出样式

  1. fmtlib/fmt
  2. JustWhit3/osmanip
  3. srilakshmikanthanp/libansi

进度条

  1. p-ranav/indicators
  2. doches/progressbar
  3. tqdm/tqdm.cpp
  4. aminnj/cpptqdm
  5. gipert/progressbar

表格

  1. p-ranav/tabulate
  2. haarcuba/cpp-text-table
  3. DenisSamilton/CppConsoleTable

日期时间

  1. HowardHinnant/date
  2. nachovizzo/ScopeTimer

基础库

  1. facebook/folly
  2. nothings/stb
  3. nothings/single_file_libs
  4. boostorg/boost
  5. attractivechaos/klib
  6. idealvin/coost
  7. Water-Melon/Melon
  8. adah1972/nvwa

参数读取

命令行参数

  1. jarro2783/cxxopts
  2. gflags/gflags
  3. CLIUtils/CLI11
  4. p-ranav/argparse
  5. tanakh/cmdline
  6. Taywee/args
  7. adishavit/argh
  8. p-ranav/structopt
  9. cparse/cparse

配置文件参数

.json文件

  1. nlohmann/json
  2. Tencent/rapidjson
  3. open-source-parsers/jsoncpp
  4. dropbox/json11
  5. kazuho/picojson
  6. Nomango/configor
  7. boostorg/json
  8. taocpp/config

.yaml文件

  1. jbeder/yaml-cpp
  2. yaml/libyaml

.csv文件

  1. vincentlaucsb/csv-parser
  2. d99kris/rapidcsv
  3. p-ranav/csv2

.toml文件

  1. marzer/tomlplusplus
  2. ToruNiina/toml11
  3. cktan/tomlc99
  4. cktan/tomlcpp

调试分析

单元测试

  1. google/googletest
  2. catchorg/Catch2
  3. onqtam/doctest
  4. mpusz/units
  5. rollbear/trompeloeil
  6. unittest-cpp/unittest-cpp

日志输出

  1. gabime/spdlog
  2. google/glog
  3. PlatformLab/NanoLog

性能分析

  1. google/benchmark
  2. google/orbit
  3. bombela/backward-cpp
  4. jonasmr/microprofile
  5. chronoxor/CppBenchmark
  6. p-ranav/criterion
  7. cameron314/microbench

数据可视化

  1. lava/matplotlib-cpp
  2. alandefreitas/matplotplusplus
  3. sciplot/sciplot
  4. dstahlke/gnuplot-iostream
  5. Profactor/cv-plot
  6. leovandriel/cvplot
  7. fbbdev/plot

机器学习&深度学习

  1. tesseract-ocr/tesseract
  2. BVLC/caffe
  3. pjreddie/darknet
  4. AlexeyAB/darknet
  5. davisking/dlib
  6. ggerganov/ggml
  7. tiny-dnn/tiny-dnn
  8. flashlight/flashlight
  9. mlpack/mlpack
  10. plaidml/plaidml
  11. cjlin1/libsvm
  12. NVlabs/tiny-cuda-nn
  13. yixuan/MiniDNN
  14. arrayfire/arrayfire-ml
  15. rockcarry/ffcnn
  16. 10-zin/cpp-micrograd

数学计算

线性代数

  1. Eigen
  2. Armadillo
  3. Blaze
  4. dpilger26/NumCpp
  5. yixuan/spectra
  6. tpoisonooo/how-to-optimize-gemm
  7. attractivechaos/matmul
  8. hosseinmoein/Tiger

李群和李代数

  1. strasdat/Sophus
  2. artivis/manif

数值运算

  1. Ceres Solver
  2. casadi/casadi
  3. autodiff/autodiff
  4. stan-dev/math
  5. johnmcfarlane/cnl
  6. boostorg/math
  7. auto-differentiation/XAD

随机采样一致

  1. tsattler/RansacLib
  2. drsrinathsridhar/GRANSAC
  3. mint-lab/rtl
  4. TotoroJason/RANSAC
  5. libing64/RansacLine
  6. ddorobot/ransac

浮点数转字符串

  1. ulfjack/ryu
  2. jk-jeon/dragonbox
  3. jk-jeon/Grisu-Exact

几何

几何运算

  1. davideberly/GeometricTools
  2. boostorg/geometry
  3. sikang/DecompUtil

三角剖分

  1. artem-ogre/CDT
  2. ivanfratric/polypartition
  3. delfrrr/delaunator-cpp
  4. bl4ckb0ne/delaunay-triangulation
  5. jhasse/poly2tri

网格处理

  1. mlivesu/cinolib

张量运算

  1. zdevito/ATen
  2. romeric/Fastor
  3. Tencent/deepx_core
  4. blitzpp/blitz
  5. STEllAR-GROUP/blaze_tensor

图论

  1. igraph/igraph
  2. ZigRazor/CXXGraph
  3. boostorg/graph

加密

  1. google/tink
  2. okdshin/PicoSHA2

序列化

  1. protocolbuffers/protobuf
  2. google/flatbuffers
  3. capnproto/capnproto
  4. USCiLab/cereal
  5. felixguendling/cista
  6. qicosmos/iguana
  7. p-ranav/alpaca

多态

  1. microsoft/proxy
  2. kelbon/AnyAny

有限状态机

  1. BehaviorTree/BehaviorTree.CPP
  2. boost-ext/sml
  3. digint/tinyfsm
  4. CodeSports/State-Machine-Using-Boost-Statechart

可视化界面

  1. ocornut/imgui
  2. idea4good/GuiLite
  3. stevenlovegrove/Pangolin
  4. koide3/iridescence

通信

通信框架

  1. zeromq/libzmq
  2. zeromq/cppzmq
  3. nanomsg/nanomsg
  4. nanomsg/nng
  5. mutouyun/cpp-ipc
  6. eclipse-iceoryx/iceoryx

网络库

  1. libuv/libuv
  2. libevent/libevent
  3. yhirose/cpp-httplib
  4. ithewei/libhv
  5. libcpr/cpr
  6. skypjack/uvw

数据结构

  1. cameron314/concurrentqueue
  2. cameron314/readerwriterqueue
  3. zouxiaohang/TinySTL
  4. skarupke/flat_hash_map
  5. VcDevel/Vc
  6. boostorg/pfr
  7. stotko/stdgpu
  8. VcDevel/std-simd
  9. frozenca/BTree

Python绑定

  1. pybind/pybind11
  2. wjakob/nanobind

反射

  1. Neargye/magic_enum
  2. rttrorg/rttr
  3. Neargye/nameof
  4. veselink1/refl-cpp
  5. skypjack/meta
  6. cbeck88/visit_struct
  7. chakaz/reflang
  8. bravikov/nameof

模板元编程

  1. boostorg/hana
  2. brunocodutra/metal
  3. sabel83/mpllibs
  4. ldionne/mpl11

并发

  1. progschj/ThreadPool
  2. oneapi-src/oneTBB
  3. David-Haim/concurrencpp
  4. mbrossard/threadpool
  5. lzpong/threadpool
  6. lizhenghn123/zl_threadpool
  7. tghosgor/threadpool11

惰性求值

  1. jscheiny/Streams
  2. MarcDirven/cpp-lazy
  3. SaadAttieh/lazyCode

有限元

  1. mfem/mfem
  2. dealii/dealii
  3. NGSolve/ngsolve
  4. halbux/sparselizard
  5. feelpp/feelpp
  6. M3Group/AsFem
  7. open-beam/openbeam

参考

  1. fffaraz/awesome-cpp
  2. p-ranav/awesome-hpp
  3. 如何评价xmake?-Tsunaou的回答-知乎
  4. XMake:现代化的C++构建工具-Hytracen的文章-知乎
  5. 使用conda作为C++包管理器-林大豆折腾记的文章-知乎
  6. 你工作中最推荐的C/C++程序库有哪些,为什么?-Zhao Zhang的回答-知乎
  7. 你工作中最推荐的C/C++程序库有哪些,为什么?-iiif的回答-知乎
  8. 有什么高质量的现代C++风格的开源代码?-夏天的回答-知乎
  9. 你读过的最好的C++开源代码是什么?-编程指北的回答-知乎
  10. 有哪些优秀的C++代码库可以推荐学习?-idealvin的回答-知乎
  11. 求问c++解析配置文件,解析命令输入的最佳实践,最好能给到相应的库?-邱昊宇的回答-知乎
  12. Google对C++的影响有多大?-编程指北的回答-知乎
  13. 有哪些值得推荐的小型C语言开源项目?-fanfan的回答-知乎
  14. 有什么高质量的C++单头文件库?-liulun的回答-知乎
  15. 有什么高质量的C++单头文件库?-芒果浩明的回答-知乎
  16. 全网唯一值得推荐的C/C++框架和库-C语言编程指南的文章-知乎
  17. OpenBLAS gemm从零入门-白牛的文章-知乎