libevent参考手册翻译:热身
2014-01-17 00:36
176 查看
Table of Contents
1 libevent参考手册:热身
1.1 简介
1.2 模块划分
1.2.1 evutil
1.2.2 event and eventbase
1.2.3 bufferevent
1.2.4 evbuffer
1.2.5 evhttp
1.2.6 evdns
1.2.7 evrpc
1.3 目标库说明
1.3.1 libeventcore
1.3.2 libeventextra
1.3.3 libevent
1.3.4 libeventpthreads
1.3.5 libeventopenssl
1.4 头文件说明
1.4.1 API头文件
1.4.2 兼容头文件
1.4.3 结构化头文件
可移植性:利用libevent编写的程序必须能在所有支持libevent的平台上工作。甚至当没有好的方式去实现无阻塞IO,libevent也应做到一定水准,以便应用能在严格的环境下运行。
效率:libevent试图使用每个平台上最快使用的无阻塞IO实现,而不引进其他开销。
可扩展性:libevent设计成让需要激活成千上万个socket的程序都能正常运行。
易用性:用libevent编写应用最自然的方式什么时候都应该是稳定和可移植的。
1 libevent参考手册:热身
1.1 简介
1.2 模块划分
1.2.1 evutil
1.2.2 event and eventbase
1.2.3 bufferevent
1.2.4 evbuffer
1.2.5 evhttp
1.2.6 evdns
1.2.7 evrpc
1.3 目标库说明
1.3.1 libeventcore
1.3.2 libeventextra
1.3.3 libevent
1.3.4 libeventpthreads
1.3.5 libeventopenssl
1.4 头文件说明
1.4.1 API头文件
1.4.2 兼容头文件
1.4.3 结构化头文件
所有者:Nick Mathewson
翻译者:Magic_Gcc1 libevent参考手册:热身
1.1 简介
libevent是一个用于编写高效、可移植、无阻塞IO的库。它的设计目标是:可移植性:利用libevent编写的程序必须能在所有支持libevent的平台上工作。甚至当没有好的方式去实现无阻塞IO,libevent也应做到一定水准,以便应用能在严格的环境下运行。
效率:libevent试图使用每个平台上最快使用的无阻塞IO实现,而不引进其他开销。
可扩展性:libevent设计成让需要激活成千上万个socket的程序都能正常运行。
易用性:用libevent编写应用最自然的方式什么时候都应该是稳定和可移植的。
1.2 模块划分
1.2.1 evutil
提供通用功能,将在不同平台上网络实现的差异抽象出来。1.2.2 event and event_base
这是libevent的核心部分。为不同特定平台、基于事件的无阻塞IO后端提供抽象的接口;能当sockets就绪时,通知你去做读写操作,或者做超时功能及检测系统信号。1.2.3 bufferevent
这些函数在libevent event_base核心模块基础上提供更易用的封装。让程序请求带缓存的读和写,并当IO确实发生时通知程序,而不是当socket就绪时通知你。1.2.4 evbuffer
该模块在bufferevent下面实现buffer,并为高效易用的访问提供接口。1.2.5 evhttp
简单实现HTTP客户端/服务端1.2.6 evdns
简单实现DNS客户端/服务端1.2.7 evrpc
简单RPC实现1.3 目标库说明
编译完libevent后,默认安装以下库:1.3.1 libevent_core
所有关于核心的event和buffer的功能都在其中,它包含eventbase,evbuffer,bufferevent,和utility函数。1.3.2 libevent_extra
定义应用可能会/可能不会用到的特定协议功能,包含HTTP,DNS和RPC。1.3.3 libevent
这个库存在时有历史原因的;包含了以上提到的两个库的内容;目前不应该使用它,它将在未来的版本被去掉。1.3.4 libevent_pthreads
增加基于可移植的三方线程库实现线程和锁。它和libevent_core分开以便开发者按是否需要多线程而去自主选择是否链接该库。1.3.5 libevent_openssl
使用bufferevent和OpenSSL库实现加密通信,同样按项目需求决定是否链接该库。1.4 头文件说明
当前所有公用的libevent头文件被安装在event2目录下,大体分为以下三类:1.4.1 API头文件
开放当前libevent版本所有公用接口,这些接口都没有特殊的前缀。1.4.2 兼容头文件
兼容的头文件包含被弃用函数的定义。如果你的程序不是从旧版本移植过来的话,请不要使用这些头文件。1.4.3 结构化头文件
这些头文件定义一些相对易变的结构体。当你需要对一些结构化的模块进行快速访问时,这些接口是透明的。任何直接依赖这些结构体的程序都难以与旧版本兼容,有时候很难进行调试。相关文章推荐
- 翻译:libevent参考手册第六章:bufferevent:概念和入门 (八)
- [翻译]Libevent 参考手册:前言
- 翻译:libevent参考手册第四章:与事件一起工作
- 翻译:Libevent参考手册:前言
- [翻译]libevent参考手册第五章:辅助类型和函数
- [翻译]Libevent 参考手册(一) -- 设置 Libevent 库
- [翻译]libevent参考手册第六章:bufferevent:概念和入门 (2011-04-30 19:26:17)
- 翻译:Libevent参考手册:前言
- GC性能优化-参考手册翻译
- MySQL 5.6 参考手册翻译(部分)
- libevent参考手册
- libevent参考手册第六章:bufferevent:概念和入门
- libevent参考手册第七章:Bufferevent:高级话题 (九)
- libevent参考手册第二章:创建event_base
- 【Ada语言学习笔记】参考手册中文翻译及注记——语言概述
- Libevent参考手册:连接监听器:接受TCP连接 (2011-08-02 20:56:19)
- LLVM language 参考手册 翻译停止相关
- Libevent参考手册:前言
- libevent参考手册第八章:evbuffer:缓冲IO实用功能 (十)
- Libevent参考手册:使用libevent的DNS:高层和底层功能 (2011-08-11 21:13:16)