主流开发语言的框架和库
C/C++
网络库:
Qt-----自然不用多少,不仅仅是GUI框架而已,而是企图弄出一个自己的“开发平台”,有自己的Core Lib,封装了不少的数据结构hash map pair list vector等等,还有XML操作和SQL库,网络库都有,不过Qt的网络库性能不好就是了。
boost------准标准库,学习C++ 11就靠这个了,有很多模块,xml操作,基础的数据结构和算法,其中的asio值得一用,是异步网络通信模块。
POCO--------C++的网络通信库。
ACE---------------也是C++的网络通信库,不过比较重量级。轻量级的有boost的asio。
libev-----------------C语言写的一个网络库,比较小。
libevent---------------C语言写的,非常经典。
libuv---------------------也不错。
libcurl-------------------怎么说呢?我只用过它来进程http下载和上传 = =,反正就是文件传输。
图形处理:
OpenGL------------大名鼎鼎无需介绍。
图像处理:
ImageMagick-------------C语言写的一个非常牛X的图像处理库。非常强大。
FreeImage--------------也不错,但是比之ImageMagick要差不少。
OpenCV------------------这个也是大名鼎鼎,不用介绍了。
多媒体框架:
Live555------------这个不错,VLC播放器底层处理RTSP就是靠它。
vlcSDK--------------VLC播放器提供的SDK
gstreamer----------------Linux经常看到,没用过。
编码和国际化库:
libiconv------------这个Linux底下经常见iconv命令。不用说了。
音视频处理:
FFmpeg----------------这个就不用说了,非常牛X,因为作者就是个很牛逼的人物。现在很多视频播放器都是FFmpeg的封装,提供非常强的视频编码解码方案。
OpenAL----------------一个跨平台的音频处理库
压缩库:
bzip2------------------挺牛逼的这玩意儿。
LZ4-----------------------压缩速度很快。
LZMA-------------------7z格式的压缩。
zlib--------------------名声远播。
加密库:
OpenSSL---------大名鼎鼎,https协议就要基于它。当然,它是SSL协议的开源版。
游戏开发:
Cocos2D-x---------------比较有名了,写2D方便。
并发 框架:
OpenCL---------------名声不错。
OpenML--------------名声也不错。
进程通信中间件:
Internet Communications engine(ICE)--------单独用一种ice的DSL描述RPC远程调用映射,实现各种语言的RPC。
Apache Thrift---------------这个有名了,非常不错。
ZeroMQ----------------非常快,异步通信,类似的有ActiveMQ和RabbitMQ等等,一个消息通信队列吧。
序列化库:
protobuf------------------可以用于各种语言的序列化,C++,java等等。google久经考验的东西。
单元测试:
cppUnit--------C++单元测试的框架
cppUTest--------C++的单元测试框架
日志库:
glog------------C++轻量的日志库
log4cplus----------也比较好用
references:
https://github.com/fffaraz/awesome-cpp