文章目录
库名 | 主要功能和组件 | 语言 |
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-cpp,C++ 资源大全中文版 | -- | 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++开源库和框架 |
-- | -- | -- |
-- | -- | -- |