推荐几个开源库
9月21日 凉夕夏投稿 通用库
Boost
不多介绍,没有不知道的吧,Boost是功能相当丰富的C基础库,boost里有很多好用的组件,都值得我们学习,造轮子时也有个方向。(话说一般C标准库好多东西也都是从Boost里抠出来的。)
Folly
Facebook的开源库,和Boost类似,但听说比Boost还牛逼。(之前研究过一个运行时检测死锁的问题,就采用了Folly库里面deadlock。py中检测图中最小环的思路。)
Abseil
Google的STL,我个人更喜欢的一个开源库,主要文档比较全,官方文档关于Abseil介绍的也很详细。
通讯
zeromq
zmq是一个为可伸缩的分布式或并发应用程序设计的高性能异步消息库。它提供一个高性能消息队列,该库设计成常见的套接字风格的API。(估计CC开发都会用到zmq吧,记得以前zmq是C接口,貌似为了高性能又用C语言重写了一遍。关于zmq网上有太多学习资料了,大家有需要也可以加我好友找我要!
asio
asio是一个跨平台的C网络编程框架,通过先进的C方法为开发人员提供连续异步模型。(我进行网络通信就是用的asio,大家呢?)
muduo
muduo是一个基于Reactor模式的现代C网络库,它采用非阻塞IO模型,基于事件驱动和回调,支持多核多线程,适合编写Linux服务端多线程网络应用程序。(陈硕大佬写的,值得学习,这里也极力推荐陈硕大佬的《Linux多线程服务端编程》书籍,文中很多篇幅都讲述了如何使用现代C,及时不进行网络开发也推荐学习一下这本书,我当年看了两遍,收获颇多!)
protobuf
Google出品,protobuf一个具有高效的协议数据交换格式工具库(类似Json),但相比于Json,Protobuf有更高的转化效率,时间效率和空间效率都是JSON的35倍。(现在的RPC基本都是用protobuf作为通讯数据格式。)
poco
POCO是一个开源的C类库的集合,它主要提供简单的、快速的网络和可移植应用程序的C开发,这个类库和C标准库可以很好的集成并填补C标准库的功能空缺。POCO库的模块化、高效的设计及实现使得特别适合嵌入式开发。
libevent
Libevent是一个用C语言编写的、轻量级的开源高性能事件通知库,主要有以下几个亮点:事件驱动,高性能,轻量级,专注于网络,不如ACE那么臃肿庞大;源代码相当精炼、易读;跨平台;支持多种IO多路复用技术:epoll、poll、select和kqueue等;支持IO,定时器和信号等事件;注册事件优先级等。
音视频
FFmpeg
音视频届的yyds,音视频开发有谁能绕过ffmpeg?ffmpeg的功能相当强大,音视频采集、音视频格式转换、滤镜、水印、音视频编解码、推送到流媒体服务器等等,太多了,对视频的绝大多数处理都可以使用ffmpeg,可以说无所不能。
图像处理
OpenCV
OpenCV用C语言编写,它具有C,Python,Java和MATLAB接口,并支持Windows,Linux,Android和MacOS多种平台,如今也提供对于C、Ch、Ruby,GO的支持。是计算机视觉里非常举足轻重的库,主要可用于物体检测、人脸检测、图像处理等。(我更多主要用它来读图片文件,进行格式转码和预览等,是不是有点大材小用了
图形
OpenGL
用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(API),图型开发者貌似都离不开OpenGL,与纹理有关的操作基本都会用到OpenGL,常用于CAD、虚拟现实、科学可视化程序和电子游戏开发。(我平时做音视频开发就需要经常使用OpenGL,搭配下面介绍的glm使用,真香。)
Vulkan
下一代的OpenGL,可解决OpenGL很多框架层面的缺陷,更高性能,可能我们以后都会从OpenGL迁移到Vulkan吧,但升级永远没有那么容易,成本太高,至少它现在还没那么普及。
Ogre
Ogre是一个三维(3D)图形渲染引擎。它是面向对象的,并且高效,抽象化了不同的API和平台,这样可以以场景为对象来使用物体,支持多种场景。它已经成功地被应用于诸多三维仿真领域,包括网络游戏和三维仿真项目。(我们平时见到的各种特效,比如在人脑袋上贴个大恐龙,贴个B站小电视,可能底层就是用到了Ogre。)
bgfx
bgfx是一个跨平台、与图形API无关,可打造个性引擎框架风格的渲染库,类似于Ogre。(我们部门渲染组初期技术选型时就评估了一下Ogre和bgfx,两者都能满足需求,但最终还是选择了Ogre,具体为啥我也忘了。。。
线性代数
Eigen
Eigen是一个线性算术的C模板库,功能强大、快速、优雅以及支持多平台。想找关于数学运算的三方库,首选Eigen就对了!
GLM
由于CC标准库中没有几何数学库,这样造成在开发一个三维系统之初往往都需要自行实现一个实用的几何数学库,这样太费时费力了。GLM的出现可以很好的解决这个问题,而且GLM不需要编译成任何库,只需要依赖头文件即可使用(OpenGL搭配GLM使用,很爽)。
JSON
rapidjson
nlohmannjson
cJSON
C语言就在rapidjson和nlohmannjson中选一个,C语言就用cJSON。
服务端引擎
workflow
搜狗公司C服务器引擎,支撑搜狗几乎所有后端C在线服务,包括所有搜索服务,云输入法,在线广告等,每日处理超百亿请求。这是一个设计轻盈优雅的企业级程序引擎,可以满足大多数C后端开发需求。(之前我还特意写了一篇文章介绍过:推荐学习这个C开源项目)
log
spdlog
目前最火的Clog库,只需要头文件即可,兼容C11,相当方便,现在有人问有什么好的log库推荐,我都是无脑推荐spdlog。
特点:非常快无需依赖第三方库支持跨平台LinuxWindowson3264bits支持多线程可对日志文件进行循环输出可每日生成日志文件支持控制台日志输出可选的异步日志支持日志输出级别可自定义日志格式
glog
GoogleGlog是一个C语言的应用级日志记录框架,提供了C风格的流操作和各种辅助宏。我以前参与的项目就有使用过glog,关于glog我还做过源码分析,可以看glog源码分析。
fmtlibfmt
formatting库,相当不错,如果觉得下面的代码非常繁琐,可考虑使用fmt。cout(a)(b)(c)
并发库
TBB
openmp
深度学习
pytorch
现在深度学习就无脑选pytorch?
内存(高效内存分配器,尤其多线程场景)
jemalloc
tcmalloc
tcmalloc更稳定,占用内存更低,jemalloc性能更高,占用内存更高!
数据压缩
zlib
zlib是提供数据压缩用的函数库,貌似在C中使用数据压缩都会用zlib。
界面
Qt
QT工具丰富、功能丰富、开源并跨平台、架构的优势等,导致原来越多的程序员投向了QT的怀抱。
数据库
sqlite3
一款轻型的数据库,我之前简单写过一篇sqlite3的入门文章:Csqlite3使用指南
参数解析
gflags
google开源的gflags是一套命令行参数解析工具,功能强大,使用起来非常方便,gflags还支持从环境变量、配置文件读取参数(可用gflags代替配置文件)。
rpc
brpc
brpc又称为baidurpc,百度出品。brpc目前被应用于百度公司内部和其他外部好多公司的各种核心业务上。
grpc
gRPC是可以在任何环境中运行的现代开源高性能RPC框架。google出品,必属经典。
原文链接:https:mp。weixin。qq。coms?bizMzkyODE5NjU2Mwmid2247488637idx1sn79de4f2266ac630e502f6f723284526echksmc21d26c1f56aafd78a090316f66e1cea23bd6a451545e3ffb5f29b434e9ed897e09080ff59cempshare1scene23srcid0113QgCO8NW9j3cmtm4nAG6Psharersharetime1673618964733sharershareida96e9b09ebf11547090dd99009e597bbrd
投诉 评论 西藏东部穿越从邦达至比如的路线我离开邦达,往北去,经过邦达草原和飞机场,以前我看过了一部记录片外国人拍摄的茶马古道,其中介绍茶马古道的马帮用马和牦牛驼运货物经过声名昭著的邦达草原,从早上出发走到了晚上他们还……
宝宝出生后谁踩生最好?新生儿的第一抱,要避免两种人抱大家好,我是践行终身学习的西红柿妈妈!洞房花烛夜,老婆生产时。这两个重要的人生时刻,对于男人和小家庭来说万分重要,一生铭记。只是,男人可能不太清楚,小婴儿才出生,身体软绵……
数据库数据恢复华为云mysql数据库误删除的数据恢复案例数据库数据恢复环境:华为云ECS,linux操作系统;mysql数据库,实例内数据表默认存储引擎为innodb。北亚数据恢复mysql数据恢复数据库故障……
ESG保险系列文章之二明确价值导向和业务导向,推动ESG战略随着ESG发展理念在全球范围内日益受到关注,近期国内国外持续发布了与绿色金融和ESG相关的监管要求、行业规范和技术标准。这些都对保险机构的治理运营乃至价值认可模式带来非常深远的……
推荐几个开源库通用库Boost不多介绍,没有不知道的吧,Boost是功能相当丰富的C基础库,boost里有很多好用的组件,都值得我们学习,造轮子时也有个方向。(话说一般C标准库好……
中国足球需要爱国主义精神2009年中国足坛有过一次反黑风暴,那时候球迷们曾经兴奋过一阵子,以为足坛会迎来天下太平。然而现实却浇灭了球迷们的幻想,中国足球再次沉沦了,而且沉得更深。如今国足主帅李铁被抓了……
多吃卷心菜可增进食欲辅助治疗消化性溃疡预防便秘炝白莲原料莲花白(卷心菜)500克调料干川椒、花椒、陈醋、白糖、盐、味精、葱、姜、蒜末做法1。将莲花白洗净,切成5厘米大小的片。2。将莲花白片用开……
本西伤退,KD4575MVP级表现!109102篮网险胜魔术北京时间早上8:30,篮网主场迎战4连败的魔术。首节:班凯罗连续得分,魔术16:7领先。篮网2分钟打出11:0,欧文、杜兰特各取9分包揽篮网前18分,小瓦格纳被KD2造犯……
免费开放!泰安又一网红新地标,氛围拉满!冬阳融融为远山的眉黛画上一抹霞光依山傍水美景一览无余尽收眼底时节的变换化来不一样的风景挑一个暖洋洋的大晴天一起来泰山佑吧第一站……
42岁潘玮柏分享自拍照,脸色发白瘦了很多,身体状况令歌迷担心6月9日晚,知名男歌手潘玮柏通过社交账号分享了一张自拍照,并配文表示天气很好,到外面走走,心情看上去挺不错的。不过从他面容来看的话,略显得有些疲惫,脸色发白,胡子拉碴,瘦了不少……
粤看粤美丨十大最美古树群来了来源:人民网广东频道原创稿广州市增城区永宁古树群,古树群面积为200亩,共有500株古树,平均树龄100年,优势树种为格木、椎树、山牡荊。供图:广东省林业局茂名市高……
武当山探寻大道至简小武当各位鲤迷们,又见面啦!明天就是中秋节和教师节啦先祝大家中秋节快乐!以及祝愿所有的老师们教师节快乐!如若在泉州提及道教祭海你会想到哪里?没错,……
海港为何输球又输人?奥斯卡扯掉中超亚军的遮羞布海港为何输球又输人?奥斯卡扯掉中超亚军的遮羞布文姜诗华中超联赛首轮开打至今,除了长春亚泰捍卫了中超强队所谓的尊严,上赛季中超冠亚军的表现都缺乏足够的说服力,泰山队虽……
2022年全国制造业百强县(市)榜单发布,山东14地上榜日前,全国综合竞争力百强县(市、区)等榜单发布。榜单由稷夏智库受权根据中国社会科学院财经战略研究院《中国县域经济发展报告》指标体系编制而成。此次还发布了2022年全国制造业百强……
太原人,阳康后乏力气短味觉嗅觉消失,咳到失禁,艾灸背俞穴很有阳康后的咳嗽问题困扰着很多人,如何缓解咳嗽在之前的文章中从食疗方到穴位按摩均已介绍过(详情请参阅公众号文章,点击蓝字进入)。今天我们不谈如何治疗咳嗽的问题,先从咳嗽伴随的难言之……
兴业证券洪嘉骏互联网行业未来发展趋势与展望当前,疫情政策转向、经济环境或将面临变化,互联网行业进入下半场,未来机遇会在何处?36氪财经邀请了兴业证券海外TMT行业首席分析师洪嘉骏,与大家分享站在一个证券分析师的角……
千润生物种草篇抗老养肤,带你开启冻干护肤新时代!近年来,随着爱美人士对护肤品的认知越来越多,科学性的护肤已经达成了众多消费者的共识。在功效性护肤赛道爆火的背景下,市场对功效护肤产品的要求也在逐步提高,而采用ISOL专利冻干技……
邮政快递运行整体畅通多措并举加快末端派送央视网消息:国家邮政局昨天(12月15日)表示,12月以来,邮政快递迎来新一轮业务高峰,整体运行较为畅通。针对末端派送压力较大,国家邮政局多措并举加快推进末端派送的畅通。……
杭州的秋天真的太美好了开启今日的心灵之旅去了白娘子与许仙相遇的西湖哪能不来雷峰塔呢人间遇你便不虚此生哪怕清风相伴独扫雷锋杭州的秋天真的太美了雷峰塔下的秋景更是美不胜收仿唐宋阁楼式建筑的雷峰塔今日就让……
动车追阳光,安逸游西昌山水映半城,满城阳光满城春好安逸,阳光明媚!动车好方便,我早上在重庆吃小面,晚上就到西昌吃烧烤了。来自重庆的小伙小邹感叹,现在坐动车到西昌,只需要6个小时。2022年12月26日,伴随着成昆铁路复……
一把清仓!周鸿祎又要卖了红衣教主周鸿祎实控的三六零,时隔三个月再度抛出股权出售计划,这次的对象是腾讯旗下腾讯音乐。12月22日晚,三六零公告,董事会审议通过议案,同意授权公司管理层自股东大会审议……
TikTok爆品趋势丨芭比粉浏览量1。8亿!义乌制造引爆粉色几近年末,一场粉色潮流’再度席卷而来,2022年全球从粉色服饰、配饰、粉色家居产品、美妆再到粉色圣诞树形成了一种前所未有的消费洪流。据WGSN近日发布的趋势预测报告称,粉……
被讨厌的勇气从一个新的视角叙说了不一样的哲学,并且改变了我。也不能说彻底改变吧。我觉得改变是一个过程,不是一天可以做到了。不是一蹴而就的,是需要一步一步的改变的。书一开头就提出一种理……
一大波时尚视觉盛宴即将来袭!敬请查收时尚遥不可及?潮流远在天边?时尚与科技充满违和?NO,NO,NO!云转播科技公司,让科技完美赋能艺术,让你行走在时尚前沿,感受无限的魅力!9……