-
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