Fiberized.IO 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
Fiberized.IO 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
Fiberized.IO 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
Fiberized.IO 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
Fiberized.IO 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !
授权协议 BSD
开发语言 C/C++
操作系统 跨平台
软件类型 开源软件
开源组织
地区 国产
投 递 者 Windoze
适用人群 未知
收录时间 2014-11-25

软件简介

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();
}
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (3)

加载中
好库,必火 Fiberized.IO
2014/12/01 09:37
回复
举报
以后写游戏服务器,只需要关系业务逻辑了。。。 Fiberized.IO
2014/12/01 09:50
回复
举报
2014/12/10 08:59
回复
举报
更多评论
暂无内容
发表于开发技能专区
2016/04/06 21:26

IO复用\阻塞IO\非阻塞IO\同步IO\异步IO

本文是对《UNIX网络编程卷1》第6章的总结。 一、 什么是IO复用? 它是内核提供的一种同时监控多个文件描述符状态改变的一种能力;例如当进程需要操作多个IO相关描述符时(例如服务器程序要同时查看监听socket和大量业务socket是否有数据到来),需要内核能够监控这许多描述符,一旦这些描述符有就绪(或者状态改变了)就告诉主动告诉进程哪些描述符已经就绪,这样站在进程的角度,就不需要挨个的查看每个描述符是否就绪。 二、 ...

0
6
发表了博客
2018/04/18 14:33

同步IO,异步IO,阻塞IO,非阻塞IO

同步(synchronous):一个进程在执行某个任务时,另外一个进程必须等待其执行完毕,才能继续执行 #所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不会返回。按照这个定义, 其实绝大多数函数都是同步调用。但是一般而言,我们在说同步、异步的时候, 特指那些需要其他部件协作或者需要一定时间完成的任务。 异步(asynchronous): #异步的概念和同步相对。当一个异步功能调用发出后,调用者不能立刻得到...

0
0
发表于硬件 & IoT专区
2020/08/03 09:00

IO之Basic IO

欢迎关注VxWorks567 如转发,请标明出处! Basic I/O system的7个函数:creat(), remove(), open(), close(), read(), write(), ioctl()。creat()与remove()主要用于文件系统。函数声明如下 int creat (char *name, int flag);int remove(char *name); /* flags */#define O_RDONLY 0x0000 /* open for reading only */#define O_WRONLY 0x0001 /* open for writing only */#define O_RDWR 0x0002 /* open for reading ...

0
0
发表于硬件 & IoT专区
2020/08/10 09:44

IO之Formatted IO

欢迎关注VxWorks567 如转发,请标明出处! Formatted I/O /* ANSI */ /* write a formatted string to the standard output stream */int printf(char *, ...); /* write a formatted string to a buffer */int sprintf(char *, char *, ...); /* write a formatted string to a buffer, not exceeding buffer size */int snprintf(char *, size_t, char *, ...); /* write a formatted string to a stream */int fprintf(...

0
0
发表于硬件 & IoT专区
2020/08/07 12:51

IO之Standard IO

欢迎关注VxWorks567 如转发,请标明出处! VxWorks provides a standard I/O package (stdio.h) with full ANSI C support that is compatible with the UNIX and Windows standard I/O packages. /* ANSI */ /* * open a file specified by name * r : open text file for reading * w : truncate to zero length or create text file for writing * a : append; open or create text file for writing at end-of-file * ...

0
0
发表了博客
2018/07/31 16:20

阻塞IO、非阻塞IO、同步IO、异步IO等

https://www.cnblogs.com/zingp/p/6863170.html 阅读目录 1 基础知识回顾 2 I/O模式 3 事件驱动编程模型 4 select/poll/epoll的区别及其Python示例   网络编程里常听到阻塞IO、非阻塞IO、同步IO、异步IO等概念,总听别人装13不如自己下来钻研一下。不过,搞清楚这些概念之前,还得先回顾一些基础的概念。 回到顶部 1 基础知识回顾 注意:咱们下面说的都是Linux环境下,跟Windows不一样哈~~~ 1.1 用户空间和内核空间   现在操...

0
0
2019/03/06 16:06

IO-IO模式和IO多路复用

参考博客:https://www.cnblogs.com/zingp/p/6863170.html

0
0
发表了博客
2020/04/15 10:35

IO操作与IO模型

目录 一 、IO操作本质 二、 IO模型 BIO – 阻塞模式I/O NIO – 非阻塞模式I/O IO Multiplexing - I/O多路复用模型 AIO – 异步I/O模型 三、同步I/O与异步I/O 四、 IO设计模式 Reactor模式 Proactor模式 对比分析 一 、IO操作本质 数据复制的过程中不会消耗CPU # 1 内存分为内核缓冲区和用户缓冲区 # 2 用户的应用程序不能直接操作内核缓冲区,需要将数据从内核拷贝到用户才能使用 # 3 而IO操作、网络请求加载到内存的数据一开始...

0
0
发表了博客
2019/03/15 11:04

IO编程之IO流

Java的IO流是实现输入、输出的基础,它可以方便的实现数据的输入输出操作。在Java中把不同的输入输出源(键盘、文件、网络连接)抽象表述为流(stream)。通过流可以使java程序使用相同的方式访问不同的输入输出源。 一、流的分类 1、按照流的流向分:输入流和输出流 输入流:只能从中读取数据,不能向其写入数据 InputStream/Reader:所有输入流的基类,前者是字节输入流,后者是字符输入流 输出流:只能向其写入数据,不能从中读...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
3 评论
89 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部