Fiberized.IO通用C++網(wǎng)絡(luò)庫
Fiberized.IO 是一個基于 Fiber 和 Async I/O 的通用 C++ 網(wǎng)絡(luò)庫。
在上層,F(xiàn)iberized.IO 提供一個兼容 C++11 thread 和 iostream 的“阻塞式”API;在底層,F(xiàn)iberized.IO 通過將阻塞式 IO 映射為異步 IO 和 kernel/userland 混合調(diào)度的 Fiber,在最大化程序的運(yùn)行效率的同時(shí)保持用戶的程序清晰簡單易于理解。
除基本的功能之外,F(xiàn)iberized.IO 還包含了一個完整的HTTP服務(wù)框架,一個 Redis 客戶端,以及 Apache Thrift 的支持,未來計(jì)劃支持常見的數(shù)據(jù)庫如 MySQL 和 MongoDB 等。
一個 HTTP 服務(wù)器示例代碼:
#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();
}評論
圖片
表情
