Burger: c++11基于协程的高性能网络框架

简介 :

  • 能使用协程和reactor两种模式构建网络应用
  • 现代版的C++11接口,利用c++11新的特性,利用chrono时间,thread库,非阻塞异步接口利用C++11的functional/bind形式的回调仿函数
  • 协程模式中能够用同步的方式表现出异步的特性,简化编码的逻辑
  • 封装了spdlog库,更加方便高效地使用高性能日志
  • 封装了mysql c api,使得mysql使用更加简单

示例:

#include <burger/net/CoTcpServer.h>
#include <burger/base/Log.h>
#include <burger/net/RingBuffer.h>

using namespace burger;
using namespace burger::net;

void connHandler(CoTcpConnection::ptr conn) {
   RingBuffer::ptr buffer = std::make_shared<RingBuffer>();
   while(conn->recv(buffer) > 0) {
       conn->send(buffer);
   }
}

int main() {
   LOGGER(); LOG_LEVEL_DEBUG;
   Scheduler sched;
   InetAddress listenAddr(8888);

   EchoServer server(&sched, listenAddr);
   server.setConnectionHandler(connHandler);
   server.start();

   sched.wait();
   return 0;
}

地址 : GitHub - BurgerGroup/Burger: c++11 Server based on coroutine and reactor