C/C++开源库推荐
主要都是平常用到的,包含windows开发、android开发、后台开发、音视频开发、深度学习等等
最后还附带几个其他语言开发的比较好的项目
持续更新中...
GUI开发
qt 跨平台开发库,内部封装了各种跨平台工具,但是大多数情况下都被用作开发跨平台客户端imgui 基于opengl/dx编写的GUI库,挺简单也挺好用的electron C++/NodeJS开发的跨平台GUI库,感觉其实就是简化版的chrome并做了某些功能的增强,分为main/render两部分,ui布局全是html/js/ts/vue/jsx,轻轻松松就可以开发出一个很漂亮的界面,毕竟前端模板太多了,可以配套用nodejs调用C++那一套,回调回C++混合开发,对执行效率要求不高的可以用sdl 跨平台GUI开发库,scrcpy用的就是这个SFML 跨平台的GUI库,以前开发游戏时写了一个demo,用了一次duilib 美化MFC项目skia google开源的gui库,android/chrome的UI都是用这个画的wxwidgets audacity好像用的就是这个gui库boden android/ios gui库,纯C++开发elements 跨平台ui库
远程控制
freerdp rdp远程控制,在windows上还是mstsc最好用,linux/mac可以考虑freerdpaspia p2p远程工具,研究过其中代码挺不错的scrcpy PC控制android手机,需要打开adbsynergy 效率工具,用一台机器共享鼠标键盘控制多台其他计算机,gui配置要激活,我一般直接用控制台启动,具体配置及启动方式请移步synergy控制台启动 QtScrcpy 将synergy的gui用QT重写了并做了增强tigervnc 开源的vnc客户端与服务端webrtc-streamer 严格来说这不是远程工具,不能控制,是一个C/C++写的基于webrtc的投屏工具,类似于deskreen,服务器启动后,在其他机器上打开浏览器输入网址,就可以选择需要显示的窗口了
音视频开发
ffmpeg 从事音视频开发必备库,avformat混流分流何种协议封装,avcodec音视频编辑器封装,ffplay.exe 是一个万能播放器,ffmpeg.exe 是个超级音视频处理工具,格式工厂就是把这个工具封装了一个界面,ffprobe码流分析工具openh264 思科开源的h264编解码库,号称最快,没有具体测试过x264 h264编解码库libvpx vp8/vp9编解码库vlc videolan的视频播放器,可提供api接口调用很方便QtAV 将ffmpeg封装成一个Qt播放器组件,在qt中用很方便rlottie lottie动画播放库,以前写QT项目时用到了,不过qt现在自己也有lottie播放组件了
音视频会议
webrtc google开源的为浏览器提供实时通话的C++库,在浏览器上提供了一套接口,很方便的实现p2p视频通话,最近几年因为疫情这个库被大量用于音视频会议系统janus 纯C开发的音视频会议服务器,很多公司的服务器都是以这个为基础版本改出来的licode C++/js开发的音视频会议服务器,同样被很多公司拿出来用mediasoup 基于webrtc的 sfu服务器,以库的形式开放出来,可以嵌入自己的项目中media-server 基于webrtc的服务器freeswitch voip视频会议服务器kamailio sip注册服务器,编译安装配置好以后,下载个linphone就可以局域网视频通话,配置个rtpengine也可以转发rtp视频流osip sip信令封装库exosip osip的C++封装pjsip sip信令封装库jrtplib rtp封装库,对接国标GB28181用过ortp linphone用到的rtp封装库
压缩库
p7zip 俄罗斯同志开发的压缩解压算法库,并提供安装程序,很出名养了一大批同类软件libzip 传统的zip压缩解压缩库
计算机视觉/深度学习
opencv intel开源的图像处理库,里边包含了何种图像处理的算法,简单的人脸识别,抠图,图像拼接,边缘检测等等,还有dnn模块可以加载其他深度学习框架训练的模型进行推理,内部封装了ffmpeg,libjpg,libpng,支持图像io,视频io,很强大的C++计算机视觉库dlib 通用工具库,包含人脸识别/检测 json解析,网络,GUI等功能,里边包含很多功能PaddlePaddle 百度开源的深度学习框架,没有用这个训练过东西pytorch facebook开源的深度学习框架,目前学术界最流行的tensorflow google开源的深度学习框架darknet 目标检测方面的神,可惜原作者已放弃这方面的研究,现在已经有pytorch实现的yolov5,yolov7了,可以用更少的数据训练出不错的模型mxnet 亚马逊在用的深度学习框架onnxruntime 微软开源的深度学习推理框架,配合onnx使用caffe 贾扬清开发的深度学习框架,以前很多人都用这个,后来tensorflow出来后,大家纷纷开始转python用tensorflowmediapipe google开源的推理框架,谁用谁知道,确实是快ncnn 腾讯开源的推理框架,移动端很快mnn 阿里开源的推理框架mace 小米开源的模型推理框架Paddle-Lite 百度开源的推理框架lite.ai.toolkit 把一些推理框架做了封装的工具库libfacedetection yushiqi开源的人脸检测工具SeetaFace 好像是中科院某位教授开源的项目,检测识别效果不错,拿来即用的项目,当时用了里边的人脸检测确实是最快的
语音识别/深度学习
服务器
游戏
直播
obs-studio 很厉害的推流工具,使用qt开发的界面,UI设计的很漂亮,使用也特别简单,可以录屏,虚拟相机,推流,ndi等功能,插件化开发代码也很不错
IM工具
序列化
网络库
数据库
加密解密
虚拟机
qemu ffmpeg作者开源的模拟器,据说可以达到真机效果virtualbox oracle开源的x86模拟器botchs x86模拟器anbox 感觉像是一个把android虚拟机跑在linux上的东西,类似于docker,把每个安卓程序轻量级的跑在x86 linux主机上,android上的每个程序直接绘制在linux gui上
编译器
工具库
构建工具
cmake 跨平台构建工具,用的最广泛的工具,android/linux/windows几乎哪都再用ninja google工程师开源的构建工具类似于makevcpkg 相当于ubuntu上的apt-get install吧,只不过,vcpkg是下载编译安装到仓库,并且需要配合cmake使用
跨平台项目
chromium chrome浏览器开源项目,很多项目都是这个项目的子项目v8 chromium项目的子项目nodejs 基于v8开发的让js独立于浏览器运行的开发平台
无分类工具
golang项目
rust项目
rustdesk rust开发的远程客户端,服务端同样开源yew rust前端开发框架类似于reacttauri 类似于electron,不过速度性能都比electron强
ts/js项目
c#项目
java/kotlin项目
python项目
dart项目
php项目