libevent
维基百科,自由的 encyclopedia
libevent是一个异步事件处理软件函式库。libevent是一个提供异步事件通知的软件库。libevent提供了一组应用程式编程接口(API),libevent API提供的机制允许开发者为事件注册回调函数,例如文件描述符上的发生了特定事件或者等待特定事件超时,接收到信号的事件,常规的定时器超时事件。当事件发生时,libevent实例会执行回调函数。libevent 在设计上是用来替代很多事件驱动网络伺服器自行实现的事件循环框架的。 也就是说,libevent可以用来取代网络伺服器所使用的事件循环检查框架。
Quick Facts 原作者, 首次发布 ...
原作者 | Azat Khuzhin, Mark Ellzey, Nick Mathewson, Niels Provos |
---|---|
首次发布 | 2002年4月9日,22年前(2002-04-09)[1] |
当前版本 |
|
原始码库 | |
平台 | 跨平台 |
语言 | C语言、C++ |
类型 | 网络函式库 |
许可协议 | BSD许可证[3] |
网站 | libevent |
Close
libevent 现在支持 /dev/poll
,kqueue(2),POSIX select(2),Windows IOCP,poll(2),epoll(7),和 Solaris端口。libevent 对实时信号有试验性支持。libevent 暴露出的 API 在全平台都是一致的,因此 libevent 支持可移植的应用程式开发,并提供“操作系统上最可扩展的事件通知机制”[4]
开发者通过 libevent 注册信号回调,可以编写“安全”的信号处理程序,因为用户提供的信号处理程序都不会在信号 处理上下文中运行。
由于可以省去对网络的处理,且拥有不错的性能,有些软件使用libevent作为网络底层的函式库,如:memcached、Tor。
libevent由Niels Provos创建,主要由Nick Mathewson维护[5],以BSD许可证发布[6]。