计算机科学

首页 > 计算机科学

libevent

2018-08-29 18:01:01     所属分类:事件(计算机)

libevent
原作者 Azat Khuzhin, Mark Ellzey, Nick Mathewson, Niels Provos
稳定版本
稳定版本
2.1.8
(2017年1月22日,​18个月前​(2017-01-22
系统平台 跨平台
语言 C语言、C++
类型 网络库
许可协议 BSD许可证
网站 libevent.org
源代码库 github.com/libevent/libevent

libevent是一个异步事件处理软件库,以BSD许可证发布。

libevent提供了一组应用程序编程接口(API),让程序员可以设置某些事件发生时所运行的函数,也就是说,libevent可以用来取代网络服务器所使用的事件循环检查框架。

由于可以省去对网络的处理,且拥有不错的性能,有些软件使用libevent作为网络底层的库,如:memcached、Tor。

支持级别

目前libevent支持以下的方式判断IO事件:

  • poll(2)
  • select(2)
几乎所有的Unix平台都有提供的函数。
  • /dev/pool
以Solaris平台为主。
  • kqueue(2)
以BSD平台为主。
  • epoll(2)
以Linux平台为主。

主要版本

  • libevent 0.1(2000年11月4日):第一个公开版本。
  • libevent 1.0(2004年12月5日),支持多线程。
  • libevent 1.1(2005年5月14日)。
  • libevent 1.2(2006年10月15日):支持DNS客户端查询函数、支持HTTP客户端及服务器端函数。
  • libevent 1.3(2007年2月15日):支持DNS服务器端函数。
  • libevent 1.4(2008年4月7日):新的RPC子系统。将内部数据结构由pull改为push(Heap)以增加效率。
  • libevent 2.0(2009年11月19日)。

外部链接

  • (英文) libevent.org,libevent的官方网站。[失效链接]
  • (英文) The C10K problem,讨论连线数破万时会遇到的瓶颈。
  • (英文) Libevent 2.0 book, libevent 2.0参考书籍
  • (英文) liboop - another asynchronous event notification library,另一个异步事件库
  • (英文) A benchmark by the libev author comparing libevent with libev, a similar library,libevent与一个类似的库libev之间比较的基准测试程序

相关推荐