Fiberized.IO - 通用C++网络库


BSD
跨平台
C/C++

软件简介

Fiberized.IO 是一个基于 Fiber 和 Async I/O 的通用 C++ 网络库。

在上层,Fiberized.IO 提供一个兼容 C++11 thread 和 iostream 的“阻塞式”API;在底层,Fiberized.IO
通过将阻塞式 IO 映射为异步 IO 和 kernel/userland 混合调度的
Fiber,在最大化程序的运行效率的同时保持用户的程序清晰简单易于理解。

除基本的功能之外,Fiberized.IO 还包含了一个完整的HTTP服务框架,一个 Redis 客户端,以及 Apache
Thrift
的支持,未来计划支持常见的数据库如 MySQL 和 MongoDB 等。

一个 HTTP 服务器示例代码:

#include <fibio/fiberize.hpp>
#include <fibio/http_server.hpp>

using namespace fibio::http;

bool handler(server::request &req,
             server::response &resp)
{
    resp.body_stream() << "<HTML><BODY><H1>"
                       << req.params["p"]
                       << "</H1></BODY></HTML>"
                       << std::endl;
    return true;
}

int fibio::main(int argc, char *argv[]) {
    server svr(server::settings{
        route(path_("/*p") >> handler),
        23456,
    });
    svr.start();
    svr.join();
}