C/C++常用开源库总结

文章目录

库名 主要功能和组件 语言
miniftpd研究 简单的ftp服务器 C
muduo的研究目录 记录学习muduo库的一些笔记 C++
yazi yazi封装的json解析库、ini解析库、xml解析库、简单的基于TCP的多线程服务器 --
ZeroMQ -- --
Abseil 字符串操作: Abseil 提供了一套强大而灵活的字符串处理工具,包括字符串拼接、分割、查找、替换等常用操作,以及基于模式匹配的功能。 并发库:Abseil 提供了各种并发编程的工具和原语,包括互斥锁、条件变量、原子操作等,帮助开发人员编写高效且线程安全的并发代码 容器和算法:Abseil 包含了一系列高性能的容器类型,如 flat_hash_map、flat_hash_set、InlinedVector 等,用于管理数据集合并提供高效的访问和操作, 日志库:Abseil 提供了灵活的日志记录功能,支持多级别的日志消息、消息格式化、日志过滤等,方便开发人员进行调试和错误追踪 时间和日期:Abseil 提供了可靠且易于使用的时间处理工具,包括时钟类型、时间间隔计算、日期时间格式化等,满足日常的时间操作需求, 效用库:Abseil 包含了许多实用的小工具和功能,如命令行解析器、随机数生成器、文件操作等,简化了常见任务的编码过程。 测试框架:Abseil 提供了全面而强大的测试框架,包括单元测试、性能测试和基准测试等,方便开发人员进行代码测试和性能优化。 C++
C++ -- 常用的C++命令行参数解析第三方库 -- --
purecpp社区开源项目列表 rest_rpc:header only的c++11 rpc库 ; cinatra:cinatra是一个高性能易用的跨平台http(server和client)框架 ; iguana:通用的跨平台的序列化引擎,支持c++对象到json、xml等格式的相互转换; ormpp:为用户提供统一的接口,支持多种数据库,提高数据库开发效率; feather:快速开发一个高性能的web网站; asio_redis_client:The best c++ redis client!; future:解决标准库的future无法实现链式调用问题,提供了多线程异步并行的方法; NoahGameFrame:C++跨平台插件式,模块化的游戏服务器架构,面向接口编程; ajson:a utility for serialize C++ and json.; plugincpp:现代C++跨平台插件框架,零依赖 :现代C++跨平台插件框架; raftcpp:An implementation of Raft consensus algorithm in modern C++.; moon:C++编写的跨平台游戏服务器框架,采用(线程绑定)Actor模型,C/CPP编写核心库,Lua编写逻辑代码的开发方式。框架注重游戏服务器开发,仅提供核心功能,不带游戏逻辑代码。 drogon:Drogon是一个基于C++14/17的Http应用高性能跨平台异步框架,使用Drogon可以方便的使用C++构建各种类型的Web应用程序。 workflow: Workflow可以同时用于异步调度和并行计算,自带Http/Redis/MySQL/Kafka协议,除OpenSSL无其他依赖,通过任务流模式为用户提供完备的通信计算融为一体的编程范式,自带服务治理,是一个设计优雅的企业级编程引擎,在搜狗内部支撑搜索服务、云输入法、在线广告的每日数百亿以上的请求。; srpc:srpc是基于workflow开发的RPC系统,兼具高性能和低门槛。支持IDL:Protobuf/Thrift;支持协议:SRPC/BRPC/ThriftFramed/ThriftHttp;支持压缩类型:snappy/gzip/zlib/lz4;支持json且可使用Http进行跨语言。自带部分代码生成,其中thrift纯手工解析,并且打通workflow自带的其他功能包括任务流、计算调度和服务治理等。 librf: 一个基于C++20 coroutines编写的无栈协程库。 nebula: Nebula Graph 是一款开源的图数据库,擅长处理千亿个顶点和万亿条边的超大规模数据集。 cpp-ipc: 使用共享内存的跨平台(Linux/Windows,x86/x64/ARM)高性能IPC通讯库。 C++, 需要甄别研究再选,或者看懂以后自己改最好,最原始的代码并不是很好用,不能直接应用于工程
awesome-cppC++ 资源大全中文版 -- C++开源项目大全
Tinyhttpd 项目简介:Tinyhttpd 是J. David Blackstone在1999年写的一个不到 500 行的超轻量型 Http Server,用来学习非常不错,可以帮助我们真正理解服务器程序的本质。建议源码阅读顺序为:main->startup->accept_request->execute_cgi --
tmux tmux一个炫酷的终端复用软件 --
musikcube musikcube是一个使用C ++编写的跨平台,运行于终端上的音乐播放器 --
MyTinySTL C++11 重新复写了一个小型 STL(容器库+算法库),代码结构清晰规范、包含中文文档与注释,并且自带一个简单的测试框架 --
oatpp 一个轻量、跨平台、高性能、完全零依赖,用纯 C++ 实现的 Web 框架 --
CppNet CppNet一个封装在 TCP 协议上的 Proactor 模式 multi-thread 网络库。包含 OS 接口调用、回调处理、定时器、缓存管理等,这里有从操作系统到应用层的所有网络细节,便于初学者学习和实践。 简单:只导出了最少量的接口,其声明都类似系统 socket API。对客户端而言,只新增了一个 buffer 类型 快速:采用性能最优的 epoll 和 IOCP 做事件驱动。每个连接都独享一个内存池,从内存池中申请的内存都由智能指针管理 清晰:结构上分为事件驱动,会话管理,接口三层,通过回调向上通知。模块之间职责分工明确,最大的类不超过 500 行代码 --
Poco 跨平台支持:Poco库支持多个操作系统,包括Windows、Linux、macOS等 组件化设计:Poco库的设计基于组件化思想,将常用的功能封装成独立的可重用组件 网络和通信:Poco库提供了强大而易用的网络和通信功能,包括HTTP、SMTP、POP3、FTP、WebSocket、TCP/UDP等协议的支持,以及HTTP服务器和客户端的实现 数据库访问:Poco库具有对多种数据库的支持,包括MySQL、SQLite、PostgreSQL、Oracle等。它提供了简单而灵活的接口,方便进行数据库连接、查询和事务处理。 加密和安全:Poco库提供了包括AES、RSA、HMAC、SSL等在内的各种加密算法的支持,以及摘要、签名、证书管理等安全功能。 多线程和并发:Poco库提供了多线程和并发编程的支持,包括线程、互斥锁、条件变量、线程池等工具,方便编写高效的并发代码。 XML和JSON处理:Poco库提供了对XML和JSON格式的解析、生成和处理的支持,方便开发者进行配置文件解析、数据交换等操作。 文件系统和IO操作:Poco库提供了强大的文件系统和IO操作功能,包括文件读写、目录遍历、文件监控等,简化了文件和目录处理的过程。 单元测试和文档生成:Poco库内置了用于单元测试和文档生成的工具集,方便开发者进行代码测试、文档编写和生成。 --
spdlog 简单易用:Spdlog 提供简洁的 API,使得日志记录变得非常容易。你只需要包含头文件,并使用简单的方法调用即可输出日志 多种日志目标:Spdlog 支持多种日志目标,可以将日志记录到控制台、文件、网络等不同的位置。你可以根据需求选择适合的日志目标 灵活的格式化:Spdlog 具有灵活的日志格式化选项,可以自定义日志的输出格式。你可以按照自己的需求定义日期、时间、日志级别和其他附加信息的格式。 多线程支持:Spdlog 在设计上考虑到多线程环境下的安全性,可以在多个线程中同时记录日志,而无需担心竞争条件。 高性能:Spdlog 使用异步日志记录方式和高效的写入策略,以提供卓越的性能。它可以处理大量的日志消息而不会对应用程序的性能产生显著影响。 支持不同的日志级别:Spdlog 提供了不同的日志级别(如 DEBUG、INFO、WARNING、ERROR 等),可以根据需求选择适当的级别进行日志记录,以帮助你更好地控制日志输出。 集成第三方库:Spdlog 可以与其他流行的 C++ 库和框架集成,如 fmtlib、Google Protocol Buffers (protobuf) 等。 跨平台支持:Spdlog 支持在多个操作系统和编译器上运行,包括 Windows、Linux 和 macOS。它可以无缝地在不同平台上提供一致的 API 和功能。

C++相关技术学习文档

-- -- --
技术文档 简介 --
cloud-design-patterns中文版 关于云设计模式的相关内容 --
Rust for C++ programmers Rust学习资料 --
CPP-Concurrency-In-Action-2ed-2019 C++并发编程资料 更多:c++开源库和框架
-- -- --
-- -- --
相关推荐
EricWang135832 分钟前
[OS] 项目三-2-proc.c: exit(int status)
服务器·c语言·前端
我是谁??34 分钟前
C/C++使用AddressSanitizer检测内存错误
c语言·c++
发霉的闲鱼1 小时前
MFC 重写了listControl类(类名为A),并把双击事件的处理函数定义在A中,主窗口如何接收表格是否被双击
c++·mfc
小c君tt1 小时前
MFC中Excel的导入以及使用步骤
c++·excel·mfc
希言JY1 小时前
C字符串 | 字符串处理函数 | 使用 | 原理 | 实现
c语言·开发语言
午言若1 小时前
C语言比较两个字符串是否相同
c语言
xiaoxiao涛1 小时前
协程6 --- HOOK
c++·协程
梓羽玩Python2 小时前
推荐一款用了5年的全能下载神器:Motrix!全平台支持,不限速下载网盘文件就靠它!
程序员·开源·github
逆天的蝈蝈3 小时前
开源与商业的碰撞TPFLOW与Gadmin低代码的商业合作
低代码·开源
TeYiToKu3 小时前
笔记整理—linux驱动开发部分(9)framebuffer驱动框架
linux·c语言·arm开发·驱动开发·笔记·嵌入式硬件·arm