libevent

属性说明
功能事件驱动的网络 I/O
许可证BSD
仓库https://libevent.org/

libevent 是较早期的异步 I/O 库,提供 bufferevent 抽象(自动缓冲的异步 I/O)。支持 epoll/kqueue/select 后端。

与 libuv 的对比

特性libeventlibuv
优先级老牌,成熟现代,设计更统一
Windows 支持较弱原生 IOCP
文件 I/O无异步文件 I/O线程池异步文件 I/O
生态memcached, tor, tmuxNode.js, Julia
DNSevdns内置 getaddrinfo 异步
struct event_base *base = event_base_new();
struct event *ev = event_new(base, fd, EV_READ|EV_PERSIST, callback, NULL);
event_add(ev, NULL);
event_base_dispatch(base);

跨语言参考: C标准库深度剖析