• grpc/libevent/libev/libasio

    实现高性能网络服务器

  • protobuf

    数据结构序列化/反序列化,方便数据交换

  • LevelDB/RocksDB

    嵌入式KV数据库

  • snappy/zlib/lz4

    数据压缩,解压缩

  • jemalloc/tcmalloc

    高效内存分配器,尤其多线程场景

  • jerasure

    Reed Solomon编解码,给存储系统实现erasure code

  • murmurhash…

    实现hash摘要

  • crc32

    数据存储或传输时的数据校验

  • cJSON

    解析json格式配置文件

  • libBSON

    JSON序列化/反序列化,MongoDB使用这种格式存储数据

  • boost

    功能丰富的C++基础库,轻度使用,C++11/14后基本不用了。

  • libRedis redis是一个数据库服务,并不是单独的库,但其代码精简,质量非常高,里面很多代码都可以拿出来直接复用,比如网络,各种数据结构的实现。


  • curl
  • zlib
  • sqlite
  • opencv

  • GNU Scientific Library (numerical computing)
  • NLopt (nonlinear optimization)
  • OpenMP、OpenMPI

泛用库Boost,界面库Qt,通信库ZeroMQ,视觉库OpenCV,并发库tbb,深度学习Caffe,序列化Protobuf ,加上一些cppformat之类的小库


tinyxml, tinydnn


gtest, glog, gflags, protobuf, grpc


libc++和libstdc++


\1. I/O框架库libevent

\2. 二进制序列化库protobuf

\3. boost库的asio和shared_ptr(不过后者已经在C++11里包括了)

\4. 日志系统Log4cXX

\5. XML解析库tinyXML

\6. json解析库jsoncpp

\7. 小巧的关系型数据库SQLite

\8. key-value的Redis

\9. 计算机视觉库opencv

\10. 数学公式解析库muparserX系列

\11. google的kv数据库leveldb,源码很适合学习

\12. 可以做深度学习封装了socket封装了pthread等一大堆功能的dlib,很爽。

\13. 深度学习库caffe,现在想到的就有这些,以后补充。。。


cpp-netlib

如果你要练手,以熟悉 HTTP + SSL 协议的话,推荐看看这个: doc/html/boost_asio/example/ssl/server.cpp doc/html/boost_asio/example/ssl/client.cpp

如果你要具体用到实际项目中,强烈不建议自己造轮子,因为光 HTTP/1.0,HTTP/1.1,HTTP/2 就要自己解析协议搞半天,加上 SSL 就更复杂了,在你徒手解析协议的时候,其他人的产品都上线了。推荐以下库:

curlpp:libcurl 的 C++ 封装 GitHub - datacratic/curlpp: C++ bindings for cURL

cpp-netlib:基于 boost.asio 的一个网络库 cpp-netlib: The C++ Network Library

  • GNU Scientific Library (numerical computing)
  • NLopt (nonlinear optimization)
  • OpenMP、OpenMPI