Fiberized.IO通用C++网络库

联合创作 · 2023-09-29 12:45

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();
}
浏览 1
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报