View Code? Open in Web Editor
NEW
This project forked from csky6688/libuv-evpp
C++11 libuv wrapper QQ群:730777001
Home Page: http://www.v2cxx.com
C++ 95.80%
C 3.15%
CMake 1.06%
libuv-evpp's Introduction
libuv-evpp
- 它拥有/轻量级/高性能/高内聚/低耦合/非阻塞纯异步的网络基础框架 采用 Reactor 模式封装
主要特性
- 具有 epoll | kqueue | iocp | completionport 功能齐全的事件循环
- 非阻塞纯异步的 tcp 服务端以及客户端
- 非阻塞纯异步的 dns 解析服务
- 高可用的线程池以及定时器(时钟)
- 它有非阻塞异步接口都是 C++11 的 functional/bind 形式的回调仿函数(并非 C 语言风格的函数指针)
- CPU 多核友好和绝对的线程安全
- TCP4 协议 / TCP6 协议
- index 复用机制不会浪费系统资源
- 高可用移植性强超低的耦合度 非常安全且平静的停止服务端(while 0 error)
- 内部Dispatch预留了DoEvent接口方便Windows主线程遭受阻塞
- 完全能够承受每天千亿级别的吞吐量,欢迎各路大神一起PR完善它
- 目前libuv-evpp正在运行在工业环境,物联网系统内。
测试说明
- Windows10 1S/20000 并发 > 测试软件:ApacheJMeter(由于Windows系统原因 本地测试只能达到2W个并发,因为端口受限)
编译说明
- 请前往 libuv 必须
- 请前往 glog 非必须
- 请前往 concurrentqueue 非必须
- 请前往 boost 非必须
- 请前往 curl 注意 linux arm v7 3.2 内核 最高支持 curl-7.55.0 版本 curl 自身的bug
- 配置好依赖库即可编译,最低要求
C++17
进行编译否则会有未知的错误(后续会降低C++版本)。
其他说明
- 队列中含有3种储存容器,快慢依次排序 [std::vector] -> [ConcurrentQueue] -> [boost::lockfree::queue]
- 安全说明 [ConcurrentQueue] / [boost::lockfree::queue] 绝对的多线程安全 [std::vector] 未经详细测试
- 开启关闭 event_platform.h 文件宏配置
libuv libevent 开发者交流群
- QQ群: 730777001
libuv-evpp's People
Contributors