Skip to content

🌪ghurri-net is an event-driven ,scalable, high-performance networking framework based on reactor and proactor patterns written in pure Go. ghurri-net 是一个事件驱动型、可扩展、高性能的基于reactor和proactor的 Go 网络框架。

License

Notifications You must be signed in to change notification settings

shaojintian/ghurri-net

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌪ghurri-net

中文 | English

Contributors Forks Stargazers Issues MIT License LinkedIn


Logo

🌪ghurri-net

使用此网络框架快速启动网络应用程序,灵感来源于gnet
Explore the docs »

View Demo · Report Bug · Request Feature

本篇README.md面向开发者

🚀 功能

  • 高性能 的基于多线程/Go程网络模型的 event-loop 事件驱动
  • 支持Reactor 和 Proactor 两种架构模式
  • 内置 Round-Robin 轮询负载均衡算法,由开源库 gclover 提供支持
  • 内置 goroutine 池,由开源库 gsweat 提供支持
  • 内置 bytes 内存池,由开源库 pool 提供支持
  • 简洁的 APIs
  • 基于 Ring-Buffer 的高效内存利用
  • 支持多种网络协议:TCP、UDP、Unix Sockets
  • 支持两种事件驱动机制:Linux 里的 epoll 以及 MacOS X/FreeBSD 里的 kqueue
  • 支持异步写操作
  • 灵活的事件定时器
  • SO_REUSEPORT 端口重用
  • 内置多种编解码器,支持对 TCP 数据流分包:LineBasedFrameCodec, DelimiterBasedFrameCodec, FixedLengthFrameCodec 和 LengthFieldBasedFrameCodec,参考自 netty codec,而且支持自定制编解码器
  • 支持 Windows 平台,基于IOCP 事件驱动机制
  • 加入更多的负载均衡算法:随机、最少连接、一致性哈希等等
  • 支持 TLS
  • 实现 ghurri-net 客户端

目录

上手指南

请将所有链接中的“shaojintian/ghurri-net”改为“your_github_name/your_repository”

开发前的配置要求
  1. go >= 1.12.x
  2. 基于go mod 管理项目依赖
安装步骤
  1. Get a free API Key at https://example.com
  2. Clone the repo
git clone https://github.com/shaojintian/ghurri-net.git

文件目录说明

eg:

filetree 
├── ARCHITECTURE.md
├── LICENSE.txt
├── README.md
├── /account/
├── /bbs/
├── /docs/
│  ├── /rules/
│  │  ├── backend.txt
│  │  └── frontend.txt
├── manage.py
├── /oa/
├── /static/
├── /templates/
├── useless.md
└── /util/

开发的架构

请阅读ARCHITECTURE.md 查阅为该项目的架构。

部署

暂无

使用到的框架

💡核心设计

  1. xxxxx
  2. xxxxx
  3. xxxxx

📊性能测试

  1. xxxxx
  2. xxxxx

贡献者

请阅读CONTRIBUTING.md 查阅为该项目做出贡献的开发者。

如何参与开源项目

贡献使开源社区成为一个学习、激励和创造的绝佳场所。你所作的任何贡献都是非常感谢的。

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

版本控制

该项目使用Git进行版本管理。您可以在repository参看当前可用版本。

作者

E-mail: sjt@hnu.edu.cn

知乎:笃行er   qq:1075803623

您也可以在贡献者名单中参看所有参与该项目的开发者。

版权说明

该项目签署了MIT 授权许可,详情请参阅 LICENSE.txt

鸣谢

赞助

If you like this project and want to sponsor the author, you can reward the author using Wechat or Alipay by scanning the following QR code.

About

🌪ghurri-net is an event-driven ,scalable, high-performance networking framework based on reactor and proactor patterns written in pure Go. ghurri-net 是一个事件驱动型、可扩展、高性能的基于reactor和proactor的 Go 网络框架。

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published