Libco is a c/c++ coroutine library that is widely used in WeChat services. It has been running on tens of thousands of machines since 2013.
By linking with libco, you can easily transform synchronous back-end service into coroutine service. The coroutine service will provide out-standing concurrency compare to multi-thread approach. With the system hook, You can easily coding in synchronous way but asynchronous executed.
You can also use co_create/co_resume/co_yield interfaces to create asynchronous back-end service. These interface will give you more control of coroutines.
By libco copy-stack mode, you can easily build a back-end service support tens of millions of tcp connection.
libco
libco
PS:
- 无需
侵入 业务逻辑,把 多 进程、多 线程服 务改造成 协程服 务,并发能力 得 到 百 倍 提 升 ; 支持 CGI框 架 ,轻松构建web服 务(New);支持 gethostbyname、mysqlclient、ssl等 常用 第 三 库(New);可 选的共 享 栈模式 ,单机轻松接 入 千 万 连接(New);完 善 简洁的 协程编程接 口
- 类pthread
接 口 设计,通 过co_create、co_resume等 简单清 晰接口 即 可 完成 协程的 创建与 恢复; - __thread
的 协程私有 变量、协程间通信 的 协程信号 量 co_signal (New); - 语言级别
的 lambda实现,结合协程原 地 编写并执行 后 台 异步任 务 (New); 基 于epoll/kqueue实现的 小 而轻的 网络框 架 ,基 于时间轮盘实现的高性能 定 时器;
$ cd /path/to/libco
$ make
or use cmake
$ cd /path/to/libco
$ mkdir build
$ cd build
$ cmake ..
$ make