haimianjie工作日记:2023年8月

haimianjie工作日记:2023年7月

C++开源项目

MyTinySTL

项目名称: MyTinySTL
项目简介: 很多人表示学完C++不知道用来干什么,我觉得学完C++的第一个练手的好机会那就是自己试着实现一个小型的STL库。MyTinySTL的作者它就用 C++11 重新复写了一个小型 STL(容器库+算法库)。代码结构清晰规范、包含中文文档与注释,并且自带一个简单的测试框架,非常适合新手学习与参考!
项目源码:https://github.com/Alinshans/MyTinySTL

Tinyhttpd

项目名称: Tinyhttpd
项目简介:Tinyhttpd 是J. David Blackstone在1999年写的一个不到 500 行的超轻量型 Http Server,用来学习非常不错,可以帮助我们真正理解服务器程序的本质。建议源码阅读顺序为:main->startup->accept_request->execute_cgi, 通晓主要工作流程后再仔细把每个函数的源码看一看。这500行代码吃透了,C语言的功底就会大幅提升。
项目源码:https://github.com/EZLippi/Tinyhttpd

muduo

项目名称: muduo
项目简介: muduo是一个基于Boost库实现的现代C++高并发网络库,由陈硕大神编写。它一个高质量的事件驱动型的网络库,其核心代码不超过4500行,使用 non-blocking IO(IO multiplexing) + one loop per thread模型,适合开发 Linux 下的多线程服务端应用程序,通过阅读源码还可学习到 C++ 语言、Linux 网络编程等后端知识。

项目源码:https://github.com/chenshuo/muduo

CppNet

项目名称: CppNet
项目简介: CppNet一个封装在 TCP 协议上的 Proactor 模式 multi-thread 网络库。包含 OS 接口调用、回调处理、定时器、缓存管理等,这里有从操作系统到应用层的所有网络细节,便于初学者学习和实践。
简单:只导出了最少量的接口,其声明都类似系统 socket API。对客户端而言,只新增了一个 buffer 类型
快速:采用性能最优的 epoll 和 IOCP 做事件驱动。每个连接都独享一个内存池,从内存池中申请的内存都由智能指针管理
清晰:结构上分为事件驱动,会话管理,接口三层,通过回调向上通知。模块之间职责分工明确,最大的类不超过 500 行代码

项目源码:https://github.com/caozhiyi/CppNet

你可能感兴趣的:(开源项目,C++)