论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
开源技术
›
开源技术
›
常用 C / C++开源库 [收藏]
常用 C / C++开源库 [收藏]
鼠扑
论坛元老
|
2024-10-24 14:59:26
|
显示全部楼层
|
阅读模式
楼主
主题
1068
|
帖子
1068
|
积分
3204
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
软件开发工作好多年了,推荐用过的一些开源库吧!
通用库
Boost:
不多介绍,没有不知道的吧,Boost是功能相称丰富的C++底子库,boost里有很多好用的组件,都值得我们学习,造轮子时也有个方向。(话说一般C++标准库好多东西也都是从Boost里抠出来的。)
Folly:
Facebook的开源库,和Boost类似,但听说比Boost还牛逼。(之前研究过一个运行时检测死锁的问题,就采用了Folly库里面deadlock.py中检测图中最小环的思路。)
Abseil:
Google的STL,我个人更喜欢的一个开源库,主要文档比较全,官方文档关于Abseil介绍的也很详细。
通讯
zeromq:
zmq是一个为可伸缩的分布式或并发应用程序计划的高性能异步消息库。它提供一个
高性能消息队列
,该库计划成常见的套接字风格的API。(估计C/C++开发都会用到zmq吧,记得以前zmq是C++接口,貌似为了高性能又用C语言重写了一遍。关于zmq网上有太多学习资料了,大家有需要也可以关注我加我好友找我要!
asio:
asio 是一个跨平台的C++网络编程框架,通过先进的C++方法为开发职员提供连续异步模型。(我进行网络通讯就是用的asio,大家呢?)
muduo:
一个基于 Reactor 模式的当代 C++ 网络库,它采用非壅闭 IO 模型,基于事故驱动和回调,支持多核多线程,得当编写 Linux 服务端多线程网络应用程序。(陈硕大佬写的,值得学习,这里也极力推荐陈硕大佬的《Linux多线程服务端编程》书籍,文中很多篇幅都报告了如何使用当代C++,及时不进行网络开发也推荐学习一下这本书,我当年看了两遍,收获颇多!)
protobuf:
Google出品,protobuf一个具有高效的协议数据交换格式工具库(类似Json),但相比于Json,Protobuf有更高的转化服从,时间服从和空间服从都是JSON的3-5倍。(现在的RPC根本都是用protobuf作为通讯数据格式。)
poco:
一个开源的C++类库的集合,它主要提供简朴的、快速的网络和可移植应用程序的C++开发,这个类库和C++标准库可以很好的集成并填补C++标准库的功能空缺。POCO库的模块化、高效的计划及实现使得特别得当
嵌入式开发
。
libevent:
一个用C语言编写的、轻量级的开源高性能事故通知库,主要有以下几个亮点:事故驱动,高性能,轻量级,专注于网络,不如 ACE 那么臃肿庞大;源代码相称精炼、易读;跨平台;支持多种 I/O 多路复用技能:epoll、poll、select 和 kqueue 等;支持 I/O,定时器和信号等事故;注册事故优先级等。
音视频
FFmpeg:
音视频届的yyds,音视频开发有谁能绕过ffmpeg?ffmpeg的功能相称强大,音视频收罗、音视频格式转换、滤镜、水印、音视频编解码、推送到流媒体服务器等等,太多了,对视频的绝大多数处理都可以使用ffmpeg,可以说无所不能。
图像处理
OpenCV:OpenCV用C++语言编写,它具有C ++,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac OS多种平台, 现在也提供对于C#、Ch、Ruby,GO的支持。是计算机视觉里非常举足轻重的库,主要可用于物体检测、人脸检测、图像处理等。(我更多主要用它来读图片文件,进行格式转码和预览等,是不是有点大材小用了)
图形
OpenGL:
用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(API),图型开发者貌似都离不开OpenGL,与纹理有关的利用根本都会用到OpenGL,常用于CAD、虚拟实际、科学可视化程序和电子游戏开发。(我平时做音视频开发就需要经常使用OpenGL,搭配下面介绍的glm使用,真香。)
Vulkan:
下一代的OpenGL,可解决OpenGL很多框架层面的缺陷,更高性能,可能我们以后都会从OpenGL迁徙到Vulkan吧,但升级永远没有那么容易,本钱太高,至少它现在还没那么普及。
Ogre:
一个三维(3D)图形渲染引擎。它是面向对象的,而且高效,抽象化了不同的API宁静台,如允许以以场景为对象来使用物体,支持多种场景。它已经成功地被应用于诸多三维仿真领域,包括网络游戏和三维仿真项目。(我们平时见到的各种特效,好比在人脑袋上贴个大恐龙,贴个B站小电视,可能底层就是用到了Ogre。)
bgfx:
一个跨平台、 "可打造个性引擎/框架“ 风格的渲染库,类似于Ogre。(我们部门渲染组初期技能选型时就评估了一下Ogre和bgfx,两者都能满足需求,但终极还是选择了Ogre,具体为啥我也忘了...)
线性代数
Eigen:
一个线性算术的C++模板库,功能强大、快速、优雅以及支持多平台。想找关于数学运算的三方库,首选Eigen就对了!
GLM:
由于 C/C++标准库中没有几何数学库,如许造成在开发一个三维系统之初往往都需要自行实现一个实用的几何数学库,如许太费时费力了。GLM的出现可以很好的解决这个问题,而且GLM不需要编译成任何库,只需要依靠头文件即可使用(OpenGL搭配GLM使用,很爽)。
JSON
rapidjson
nlohmann/json
cJSON
C++语言就在rapidjson和nlohmann/json中选一个,C语言就用cJSON。
服务端引擎
workflow:
搜狗公司C++服务器引擎,支撑搜狗几乎全部后端C++在线服务,包括全部搜索服务,云输入法,在线广告等,逐日处理超百亿请求。这是一个计划轻盈优雅的企业级程序引擎,可以满足大多数C++后端开发需求。
log
spdlog:
目前最火的C++log库,只需要头文件即可,兼容C++11,相称方便,现在有人问有什么好的log库推荐,我都是无脑推荐spdlog。
特点:
非常快
无需依靠第三方库
支持跨平台 - Linux / Windows on 32/64 bits
支持多线程
可对日志文件进行循环输出
可逐日天生日志文件
支持控制台日志输出
可选的异步日志
支持日志输出级别
可自界说日志格式
glog:
Google Glog 是一个C++语言的应用级日志记录框架,提供了 C++ 风格的流利用和各种辅助宏。
fmtlib/fmt:
formatting库,相称不错,假如觉得下面的代码非常繁琐,可考虑使用fmt。
cout << "(" << a << ")(" << b << ")(" << c << ")" << endl;
复制代码
并发库
TBB
openmp
深度学习
pytorch
现在深度学习就无脑选pytorch?
内存(高效内存分配器,尤其多线程场景)
jemalloc
tcmalloc
tcmalloc更稳定,占用内存更低,jemalloc性能更高,占用内存更高!
数据压缩
zlib:
提供数据压缩用的函数库,貌似在C++中使用数据压缩都会用zlib。
界面
Qt:
工具丰富、功能丰富、开源并跨平台、架构的上风等,导致原来越多的程序员投向了QT的怀抱。
数据库
sqlite3:
一款轻型的数据库,我之前简朴写过一篇sqlite3的入门文章。
参数剖析
gflags:
google开源的gflags是一套下令行参数剖析工具,功能强大,使用起来非常方便,gflags还支持从环境变量、配置文件读取参数(可用gflags代替配置文件)。
rpc
brpc:
brpc又称为baidu-rpc,百度出品。brpc目前被应用于百度公司内部和其他外部好多公司的各种核心业务上。
grpc:
gRPC 是可以在任何环境中运行的当代开源高性能 RPC 框架。google出品,必属经典。
觉得有点收获就给点个赞吧!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
鼠扑
论坛元老
这个人很懒什么都没写!
楼主热帖
Java 基于Apache POI实现Excel读写操作 ...
Dapr 知多少 | 分布式应用运行时 ...
XAF新手入门 - 类型子系统(Types Info ...
springboot开启单元测试的方法分享 ...
记录一次NoSuchMethodError问题的解决 ...
C#生成putty格式的ppk文件(支持passph ...
Python 封装SNMP调用接口
5.15日 搭建青龙面板教程——狗东跑跑 ...
SQLSERVER大小写转换方法
风险洞察之事件总线的探索与演进 ...
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
.Net
IOS
运维.售后
物联网
移动端开发
Mysql
数据仓库与分析
DevOps与敏捷开发
linux
快速回复
返回顶部
返回列表