C++C++的工具库bdy

libevent:事件通知库,主要有以下几个亮点:事件驱动(event-driven),高性能;轻量级,专注于网络,不如ACE那么臃肿庞大;源代码相当精炼、易读;跨平台

glog:google的开源日志系统,相比较log4系列的日志系统,它更加轻巧灵活,而且功能也比较完善。

spdlog:logger库,重点推荐!为什么呢因为好使!没有废话.而且是headeronly的.

gRPC:是由Google主导开发的RPC框架,使用HTTP/2协议并用ProtoBuf作为序列化工具。

abseil:谷歌的库,可以看作是STL的扩充

OpenCV:视觉图像处理库

FFTW:号称最快的FFT!

深度学习:推荐Eigen,它也是tensorflow的基础组件之一。

单元测试

caffe

header-only的HTTP网络库!!!s/c端都支持一些常用方法。

效率跟curl/cpp-netlib/cpprestsdk之类的重器没得比,但胜在写demo之类的小东西很方便。

喏,一个服务端完整示例:

gzip压缩zlib

json序列化nlohmann/json

二进制序列化protobuf

嵌入式数据库sqlite

日志库glog

参数解析库gflags

消息队列zmq

rpc库brpc

tcp网络库evpp

做存储,数据库系统方面的开发,主要用到

*grpc/libevent/libev/libasio实现高性能网络服务器*protobuf数据结构序列化/反序列化,方便数据交换*LevelDB/RocksDB嵌入式KV数据库*snappy/zlib/lz4数据压缩,解压缩*jemalloc/tcmalloc高效内存分配器,尤其多线程场景*jerasureReedSolomon编解码,给存储系统实现erasurecode*murmurhash…实现hash摘要*crc32数据存储或传输时的数据校验*cJSON解析json格式配置文件*libBSONJSON序列化/反序列化,MongoDB使用这种格式存储数据*boost功能丰富的C++基础库,轻度使用,C++11/14后基本不用了。*libRedisredis是一个数据库服务,并不是单独的库,但其代码精简,质量非常高,里面很多代码都可以拿出来直接复用,比如网络,各种数据结构的实现。

为什么——

A.自己写一遍太累B.写得很好C.实用且满足我的需求D.好用不折腾E.代码有深度且可读性高,可以挖宝贝

用过才敢推荐,其中B/E读过才敢评价重点推荐microprofile,不只用来分析性能好用,用来帮助理解引擎运行流程也是极其特别好用,往Unreal里面随便一放,它哪个线程什么时候在做什么事情、调用关系、调度状况、依赖关系一切都看得清清楚楚明明白白真真切切——而且本身性能影响极小,可以远程监控,报表可以存下来慢慢研究,神器

不管怎么看Unreal代码,都没这一幅图清晰

Update:再加两个没人提的

Catch2:著名的单元测试框架,那么它和boost或者google的单元测试框架有什么不同呢

就在于它首先是headeronly的,其次是没有废话,直击要害!你要测试对吧给你!

Celero:简单清晰的benchmark库,特点就是简单易用没有废话.

bundle:把几乎所有常见的压缩库封装成了一个库,接口完全统一,想用哪个用哪个.

就一个h和一个巨TM大的cpp文件,巨好使巨方便.

Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写,代码实在太简洁,源码加起来不到600行。

cJSON是C语言中的一个JSON编解码器,非常轻量级,C文件只有500多行,速度也非常理想。

cJSON也存在几个弱点,虽然功能不是非常强大,但cJSON的小身板和速度是最值得赞赏的。其代码被非常好地维护着,结构也简单易懂,可以作为一个非常好的C语言项目进行学习。

cmockery是google发布的用于C单元测试的一个轻量级的框架。它很小巧,对其他开源包没有依赖,对被测试代码侵入性小。cmockery的源代码行数不到3K,你阅读一下will_return和mock的源代码就一目了然了。

主要特点:

libev是一个开源的事件驱动库,基于epoll,kqueue等OS提供的基础设施。其以高效出名,它可以将IO事件,定时器,和信号统一起来,统一放在事件处理这一套框架下处理。基于Reactor模式,效率较高,并且代码精简(4.15版本8000多行),是学习事件驱动编程的很好的资源。

Memcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。Memcached-1.4.7的代码量还是可以接受的,只有10K行左右。

Lua很棒,Lua是巴西人发明的,这些都令我不爽,但是还不至于脸红,最多眼红。

让我脸红的是Lua的源代码,百分之一百的ANSIC,一点都不掺杂。在任何支持ANSIC编译器的平台上都可以轻松编译通过。我试过,真是一点废话都没有。Lua的代码数量足够小,5.1.4仅仅1.5W行,去掉空白行和注释估计能到1W行。

SQLite是一个开源的嵌入式关系数据库,实现自包容、零配置、支持事务的SQL数据库引擎。其特点是高度便携、使用方便、结构紧凑、高效、可靠。足够小,大致3万行C代码,250K。

UNIXV6的内核源代码包括设备驱动程序在内约有1万行,这个数量的源代码,初学者是能够充分理解的。有一种说法是一个人所能理解的代码量上限为1万行,UNIXV6的内核源代码从数量上看正好在这个范围之内。看到这里,大家是不是也有“如果只有1万行的话没准儿我也能学会”的想法呢?

另一方面,最近的操作系统,例如Linux最新版的内核源代码据说超过了1000万行。就算不是初学者,想完全理解全部代码基本上也是不可能的。

NetBSD是一个免费的,具有高度移植性的UNIX-like操作系统,是现行可移植平台最多的操作系统,可以在许多平台上执行,从64bitalpha服务器到手持设备和嵌入式设备。NetBSD计划的口号是:”OfcourseitrunsNetBSD”。它设计简洁,代码规范,拥有众多先进特性,使得它在业界和学术界广受好评。由于简洁的设计和先进的特征,使得它在生产和研究方面,都有卓越的表现,而且它也有受使用者支持的完整的源代码。许多程序都可以很容易地通过NetBSDPackagesCollection获得。

关于C++框架、库和资源的一些汇总列表,内容包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。

C++标准库,包括了STL容器,算法和函数等。

C++通用框架和库

音频,声音,音乐,数字化音乐库

生物信息,基因组学和生物技术

压缩和归档库

并发执行和多线程

数据库,SQL服务器,ODBC驱动程序和工具

调试库,内存和资源泄露检测,单元测试

动力学仿真引擎

XML就是个垃圾,xml的解析很烦人,对于计算机它也是个灾难。这种糟糕的东西完全没有存在的理由了。-LinusTorvalds

一些有用的库或者工具,但是不适合上面的分类,或者还没有分类。

THE END
1.标准答案下列工具中,更适用于免费在线存储学习资源的是习题:下列工具中,更适用于免费在线存储学习资源的是( ) 选择一项: a. 博客 b. 微信 c. 云盘 d. 微博 本站收集整理了大量习题及答案,请使用站内查询查找 标准答案:C八字精批2025运势命中贵人八字合婚 姓名 性别 男女 生日 https://m.rwtext.com/69205.html
2.批量生产素材软件下载免费零代码企业数字化知识站通过以上途径,你可以找到许多免费的批量生产素材软件下载资源。开源软件、免费试用版本、限时促销、社区共享资源、教育机构提供的资源、在线工具和平台、免费素材网站、插件和扩展、脚本和自动化工具、云存储和协作工具、学习资源和教程等途径都可以帮助你获取高质量的设计素材和工具,提升你的设计效率和水平。希望这些信息能https://www.jiandaoyun.com/blog/article/376294/
3.信息技术第一二章测试1D、可视化报告工具 15、下列工具中, 更适用于免费在线存储学习资源的是()。 * A、微信 B、云盘 C、博客 D、微博 16、以下关于数据、信息和知识相互关系的理解, 不正确的是()。 * A、数据是原始事物现象的符号记录 B、信息等同于知识 C、信息是经加工处理的、具有意义的数据 D、知识是经一系列加工处理https://www.wjx.cn/jq/98138739.aspx
4.免费公共数据集的10大在线资源分享开源地理空间基金会中文分会免费公共数据集的10大在线资源分享 摘要: 实践数据科学的最佳方法是尝试不同类型的项目。如果您打算开始数据科学的职业生涯,那么需要熟悉其基本构建模块,即数据。它通常存储在数据集中,可以使用和操作该数据集来获得见解或练习技能。 数据集有 2 种文件格式: .xlsx:众所周知的 Excel 文件扩展名https://www.osgeo.cn/post/170b9
5.阿里云产品免费试用活动可试用云产品配置时长及规则汇总阿里云在2023年6月份又火速上新了多款免费新品,目前免费试用产品增加至122款,可申请试用的云产品类别有计算、容器、存储、网络与CDN、安全、中间件、数据库、大数据计算、AI与机器学习、媒体服务、企业服务与云通信、物联网、开发工具、迁移与运维管理。具体产品名称、配置及试用时长见下表: https://www.jianshu.com/p/c6894a8672fc
6.网络中心该部分规定了职业教育中使用的三类数字资源的要求,包括课堂与实训室数字化教学资源(媒体素材、试题、试卷、课件、案例、文献资料、网络课程、教学工具软件APP、常见问题解答和资源目录索引等)、仿真实训资源(仿真实验软件、仿真实训软件和仿真实习软件等)、数字场馆资源(职业体验馆、数字博物馆、数字艺术馆、数字科技馆、http://www.xtzy.com/wlzx/detail.jsp?public_id=153330
7.乐高教育加盟乐高教育加盟费多少钱?四、改进人力资源流程和工具 我们努力发展一个组织,让不同背景、知识、经验、观点和信仰的员工都能充分发挥其潜力。我们投资于每个人,并为所有人提供终身学习和职业发展解决方案。2019 年,我们推出了一个新的学习平台,改进了我们的继任计划并引入了新工具,使我们的招聘广告中的语言性别中立,我们的承诺在我们的在线平https://www.jiamengfei.com/xm/14532
8.6款开源在线文档协同工具:免费高效跨平台的团队协作利器功能类型:CryptPad是一款注重隐私保护的在线文档协同工具,提供文档、表格、幻灯片等编辑器,并支持端到端加密。 发展历程:CryptPad于2016年由英国团队开发,旨在为用户提供一个安全、私密的在线协作平台。 价格费用:CryptPad提供免费版和付费版。免费版有存储空间限制,付费版提供更多存储空间和高级功能。 https://www.banlikanban.com/info/tool/4464.html
9.15款在线画图软件深度测评:第一款绝对不要错过● 在线和离线使用: Vectr既可以在线使用,也提供了桌面应用程序,可以在离线情况下继续工作 ● 学习资源丰富: Vectr提供了大量的教程和文档,帮助用户更好地了解如何使用工具和进行设计 限制: ● 基本功能免费,但一些高级功能,如高级形状变换和导出选项,需要付费订阅 ● 不适合需要更高级和复杂设计的专业设计师 定价:https://boardmix.cn/article/15-online-drawing-softwares/
10.APP了解进度卡西欧EY300评测汇总为方便用户快速输入,支持手写录入,便利的查询方式大大提升用户的学习效率,支持micro SD卡扩容,可存储更多学习资源。 全键盘+手写两种录入方式 这款卡西欧E-Y300辞典依托2节5号电池续航,由于应用了低功耗触摸屏,使得该设备在一定条件下续航可达180小时,满足用户的长时间使用。 https://m.zol.com.cn/article/6015492_3.html
11.嵌入式在线服务12篇(全文)基于嵌入式Linux终端的在线流媒体服务系统,包括嵌入式浏览器、WEB服务器、数据库服务器、嵌入式mplayer播放器、流媒体服务器、影片存储服务器,用户通过浏览器访问WEB服务器上的流媒体服务系统,WEB服务器查询数据库服务器上的影片信息,嵌入式终端监听浏览器行为并启动mplayer播放器,获取流媒体影片地址参数并传递给mplayer播https://www.99xueshu.com/w/ikeyzq9dqs5g.html
12.对象存储服务OBS资源工具与学习课程免费教程通过SDK实现调用OBS服务API,便于资源综合管理 地区终端和节点 选择出更加满足业务布局的服务区 OBS Browser+工具 一款用于访问和管理对象存储服务OBS的图形化工具 obsutil工具 一款全新的命令行工具,具有简单易用、性能卓越等优势 OBS FTP工具 基于对象存储提供具有FTP协议接入的云上存储使用能力 https://www.huaweicloud.cn/product/obs/resources.html
13.UnrealEngine4游戏开发入门经典启动器(Launcher)可以帮助你追踪已经安装的不同版本的虚幻引擎。通过它,你可以管理项目,访问免费案例项目,进入资源商城,并可以在资源商城购买用于项目的内容;它还可以为你更新社区新闻和在线学习资源及文档的链接。 操作系统:Windows 7、Windows 8(64位),或 Mac OS(X10.9.2)。 https://labs.epubit.com/bookDetails?id=N6999
14.每个创业公司成功所需的40个必备工具ONLYOFFICE博客数据存储。任何启动都有应安全存储的文档和重要文件。在线服务免费或以实惠的价格提供大量存储空间。 人力资源和会计。有一些数字工具可以帮助您的团队跟踪招聘流程并记录与您的业务相关的财务交易信息。 营销软件。推广任何产品都需要将创造力和巧妙地使用营销工具相结合,以进行文案写作、搜索引擎优化、发布广告、在社交媒https://www.onlyoffice.com/blog/zh-hans/2023/09/startup-tools
15.云笔记横向评测:印象笔记有道云笔记为知笔记OneNote数字花园:Notion Like 笔记软件使用教程·学习资源汇总·知识管理方案:深度评测、辅助工具、信息管理、时间管理、任务管理、思维管理、项目管理、文件管理、笔记方法、记忆方法、写作方法 数字花园:在线协作文档综合评测 :微软 Office、谷歌文档、金山文档、腾讯文档、石墨文档、Dropbox Paper、坚果云文档、百度网盘在线文档https://cloud.tencent.com/developer/inventory/28215/article/2030740
16.东成西就免费马报资料2024121521:10:37v9.8.10东成西就免费马报资料还是一款方便高效的学习工具。首先,它提供了在线学习的功能,用户可以通过软件学习各种知识和技能。例如,用户可以通过观看教学视频学习外语、计算机编程、绘画等。此外,东成西就免费马报资料还有在线课程和学习资源,用户可以通过软件进行在线学习,提高自己的知识水平和技能。 http://www.njcxalc.cn/?/content/20241216080745/node_7517999.html