基于协程实现的C++ 11
高性能事件驱动网络框架.
-
HOOK
的系统调用包括 :send
、recv
、accept
、connect
、socket
、socketpair
、pipe
等. -
支持
任性
的创建海量的定时器, 使用紧凑的结构实现而不用担心内存占用等问题. -
基于协程的同步非阻塞逻辑编写模式, 比异步与回调的模型更加容易编写业务与库.
-
内部自实现的
DNS
请求与解析协议与Hosts
缓存机制, 不用担心封装业务不完善的问题.
mkdir -p build && cd build
cmake .. && make
make install
make clean
cmake ..
构建命令的尾部可以增加下列参数:
宏名称 | 命令行语法 | 实际含义 |
---|---|---|
ECO_RELEASE | -DECO_RELEASE=1 | 使用RELEASE模式编译(默认为DEBUG) |
ECO_OPENSSL | -DECO_OPENSSL=1 | 告知链接HOOK 住openssl 的API |
ECO_JEMALLOC | -DECO_JEMALLOC=1 | 告知链接使用jemalloc |
ECO_TCMALLOC | -DECO_TCMALLOC=1 | 告知链接使用tcmalloc |
例如:
[root@Server:~/libeco/build] cmake .. -DECO_RELEASE=1 && make && make install
#include <iostream>
#include <eco.hpp>
int main(int argc, char const *argv[])
{
eco::eco_run([]{
eco::eco_fork([]{
std::cout << "Hello ";
});
eco::eco_fork([]{
std::cout << "c plus plus ";
});
eco::eco_fork([]{
std::cout << "!" << std::endl;
});
});
return 0;
}
#include <iostream>
#include <eco.hpp>
int main(int argc, char const *argv[])
{
eco::eco_run([]{
eco::eco_fork([]{
std::cout << "定时器`1`休眠1秒" << std::endl;
eco::eco_sleep(100);
std::cout << "定时器`1`休眠结束" << std::endl;
});
eco::eco_fork([]{
std::cout << "定时器`2`休眠1秒" << std::endl;
eco::eco_sleep(100);
std::cout << "定时器`2`休眠结束" << std::endl;
});
eco::eco_fork([]{
std::cout << "定时器`3`休眠1秒" << std::endl;
eco::eco_sleep(100);
std::cout << "定时器`3`休眠结束" << std::endl;
});
});
return 0;
}
文档可能会因为过期而更新, 请在任何情况下以实际代码为准。