0


关于个人开源网络库MoonNet

MoonNet

          ____                                               ,--.
        ,'  , `.                                           ,--.'|                ___
     ,-+-,.' _ |,--,::|,--.'|_
  ,-+-. ;   ,||,---.      ,---.         ,---,,`--.'`|  ':||:,'
 ,--.'|'   |  ;|   '   ,'\    ','\    ,-+-. /  | |   :  :  | |              :  : ':||,', |  ':  /   /   |  /   /   |,--.'|'   |:|   \ |:,---.   .;__,'  /
|| /  |||| .   ; ,.: .   ; ,.:||,"' ||: '  '; |   /     \  |||
'   |:|:|, '   ||:: '   ||::|| /  || '   ' ;.    ;  /    /  |:__,'|:;   . |  ; |--'  '   | .;: '   | .; :|||||||| \   | .    ' / |   '  :|__
|:||,|:||:|||||/  '   :|  ; .' '   ;   /||| '.'||: '  |/       \   \  /   \   \  /  |||--'   |   | '`--'   '   |  / |   ;:    ;
;   | |`-'         `----'     `----'   |   |/       ':||:||,   /
|   ;/                                 '---'        ;   |.'        \   \  /     ---`-'
'---'                                               '---'           `----'

🌙 MoonNet 简介
MoonNet 是一个专注于基于 Reactor 模型的高性能服务端网络库。它采用主从 Reactor 多线程模型,结合并实践了 one loop one thread 的设计理念,充分利用 Linux 的 epoll 机制,实现了高效、可扩展的网络通信能力。MoonNet 支持 TCP 和 UDP 协议,并内置信号处理和定时器功能,适用于构建高并发、低延迟的服务器应用。


🌟 主要特性
高性能:基于 epoll 的事件驱动模型,能够轻松处理数万级别的并发连接。
多线程:采用主从 Reactor 模式,通过线程池管理多个事件循环,充分利用多核 CPU 的性能。
丰富的事件类型:支持 TCP、UDP、定时器 和 信号 等多种事件,满足多样化的网络应用需求。
易于使用:简洁明了的接口设计,降低上手难度,方便集成到各种项目中。
负载均衡:提供静态和动态负载均衡方案,优化资源分配,提高系统吞吐量。
模块化设计:各个组件独立且可扩展,便于定制和功能扩展。


🚀 快速开始
📦 安装

克隆仓库:

git clone https://github.com/MoonforDream/MoonNet.git
cd MoonNet
mkdir build &&cd build
cmake ..make# 安装sudomakeinstall# 清理build等文件(可选)make clean-all

📋 代码规范
代码风格:遵循一致的代码风格,推荐使用 clang-format 进行格式化。
文档:为新增功能添加相应的文档说明,确保其他开发者能够理解和使用。
测试:确保代码的稳定性,添加必要的单元测试覆盖新功能。


📜 更新日志

v1.0.0

:
初始发布:MoonNet 网络库首次发布,支持基于 Reactor 模型的 TCP 和 UDP 事件处理,封装主从 Reactor 多线程服务端模块。

核心功能

  • 事件循环 (eventloop) 和事件处理 (event) 实现。
  • 多线程支持:通过 loopthread 和 looptpool 管理多个事件循环。
  • TCP 连接管理:基于 bfevent 的缓冲事件处理。
  • UDP 支持:提供 udpevent 进行数据接收和发送。
  • 定时器事件处理:通过 timerevent 实现定时任务。
  • 信号事件处理:使用 signalevent 捕获和处理系统信号。
  • 静态/动态负载均衡。
工具类

  • 缓冲区管理 (buffer):实现高效数据读写。
  • 任务线程池 (Threadpool)。
  • 平台无关的套接字操作封装 (wrap)。
服务器框架
  • server 类:集成所有组件,简化服务器搭建流程。
日后计划

  • 主从 Reactor 多进程支持:包括进程通信等封装。
  • HTTP/HTTPS 支持。
  • 内置内存池:优化动态申请内存的性能。
  • 数据库连接池支持:包括 MySQL、Redis 等数据库的连接池。
  • 内置异步日志库。
  • TCP 长连接支持:包括 Keep-Alive 和应用层心跳检测。
  • 高负载时的拒绝策略。
  • 更多功能待开发…

📢 联系我们
如果您有任何问题、建议或想要贡献代码,欢迎通过以下方式与我们联系:

GitHub Issues:https://github.com/MoonforDream/MoonNet/issues
邮件:moondream2144@gmail.com
即时通讯:如果感兴趣的人多,会考虑建群和社区进行交流
让我们一起打造一个高性能、稳定且易用的网络库!


🔗 相关资源
仓库地址:https://github.com/MoonforDream/MoonNet
使用文档:英文版 中文版
示例代码:https://github.com/MoonforDream/MoonNet/tree/master/example

标签: 开源 Reactor c++

本文转载自: https://blog.csdn.net/hellmorning/article/details/143279512
版权归原作者 Moon也爱算法呀 所有, 如有侵权,请联系我们删除。

“关于个人开源网络库MoonNet”的评论:

还没有评论