c++服务器开源项目,开源c++ lua服务器框架—jwEngine

jwEngine

一个跨平台的c++lua服务器快速解决方案,该框架即可快速响应服务器开发工作,设计思想:“让事情变得更简单”。

网络底层采用libuv(node.js底层库),异步io助力使单线程也能释放澎湃动力,跨平台支持epoll、iocp、ipv6。框架支持tcp、udp/kcp、websocket、http,并保证了接口的一致性,使用了sol2将所有接口都导出到lua,可以选择用lua开发逻辑。

使用modern c++开发,尽可能的使用std::move、std::string_view减少内存复制。

该框架使用异步事件,不建议使用多线程,避免多线程上下文切换开销和破坏代码美感,网络部分和逻辑部分使用一个主事件循环驱动。建议的方案是多进程单线程的横向扩展,按照业务控制各个进程的粒度,当然mysql和redis可以加入到线程池中。

a221e8d86f2a844e8f15c3c73cbd6a06.png开源社区促进人类文明的进步

创建一个tcp服务器

只需要简单几行代码即可创建一个tcp高性能服务器,并自动处理数据包头和粘包(其中包头包含消息长度和协议号),构建一个完好的NetPacket交给你。

d1a72e9919dd84d29757f5139f3fc679.png

创建一个kcp服务器

c++的kcp服务器示例,快速构建你的帧同步服务器,保证消息的可靠性

22e0804c4d9467b7ffbb8b64208f74e7.png

创建一个websocket服务器

自动完成解析websocket协议工作

b14c53e213465b05cc86bce9f61c0440.png

创建一个http服务器

http仅支持简单的get post请求

356be2c9144a3f571f2aa7ac8f4b599f.png

mysql和线程池

这次我们用lua示例:

0856b8e281accd0cb781ee7bf1b113aa.png

任意扩展进程节点

你可以任意扩展你的进程,示例:

10c78e4e52928c6d3d1e9dd6e4a0b01d.png

提供一个serialization序列化工具

类似于c++的语法,写起来非常简单,示例:

953301e98f1cca629cafa791358a1a0f.png

通过serialization工具可以生成c++或者lua代码,自动补全read()和write()函数,使得数据结构快速映射到SocketBuffer中。倘若该工具无法满足你,你也可以非常轻松的接入protobuff。

构建

你需要一个modern c++17编译器

vs2017 测试通过gcc version 9.3.0 测试通过进一步了解

更多使用示例请参考项目的example目录. 同时欢迎fork和贡献代码

获取开源

github中搜索:jwEngine

举报/反馈

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值