Handy是一个简洁高效的C++11网络库,支持linux与mac平台,使用异步IO模型。
多平台支持Linux:ubuntu1464bitg++4.8.1上测试通过
MacOSX:LLVMversion6.1.0上测试通过
支持优雅退出优雅退出可以让程序员更好地定义自己程序的退出行为;能够更好地借助valrind等工具检查内存泄露。高性能linux上使用epollMacOSX上使用kqueue性能测试报告单机千万并发连接简洁10行代码能够编写一个完整的服务器。
代码示例--echo-server:
#include<handy/handy.h>usingnamespacehandy;intmain(intargc,constchar*argv[]){EventBasebase;Signal::signal(SIGINT,[&]{base.exit();});TcpServerPtrsvr=TcpServer::startServer(&base,"",99);exitif(svr==NULL,"starttcpserverfailed");svr->onConnRead([](constTcpConnPtr&con){con->send(con->getInput());});base.loop();}支持半同步半异步处理异步管理网络I/O,同步处理请求,可以简化服务器处理逻辑的编写。
openssl支持异步连接管理,支持openssl连接,如果实现安装了openssl,能够找到<openssl/ssl.h>,项目会自动下载handy-ssl,由于openssl的开源协议与此不兼容,所以项目文件单独放在 handy-ssl/
protobuf支持使用protobuf的消息encode/decode示例在protobuf下。
udp支持支持udp,udp的客户端采用connect方式使用,类似tcp
评论