网络与服务器编程框架库 acl_3.0.19 发布

郑树新
 郑树新
发布于 2014年06月23日
收藏 48

本周日,来 OSC·年终盛典收割技术干货,get新技能!!>>>

acl 3.0.19 版本 (项目主页:https://sourceforge.net/projects/acl/,技术文章主页:http://zsxxsz.iteye.com/  ) 发布了,acl 是 one advanced C/C++ library 的简称,主要包括网络通信库以及服务器框架库等功能,支持 Linux/Windows/Solaris/FreeBsd/MacOS 平台;整个 acl 项目主要包含三个函数库:lib_acl(纯C开发的基础库,主要包含网络通信及服务器编程框架以及其它丰富的功能)、lib_protocol(包含 HTTP/PING/SMTP 通信协议的C语言实现)、lib_acl_cpp(基于 lib_acl 及 lib_protocol 两个C库,提供了更为强大的编程接口及丰富的功能类);本次 acl 升级主要包含一些 BUG 修复及功能特性增加。
 
acl 包括以下丰富的常用函数库:
1、常见网络应用库: SMTP 客户端库/PING 库/memcache 客户端库/handlersocket 客户端库/beanstalk 客户端库
2、HTTP 网络库:HTTP 客户端/服务端库,C++版 HttpServlet 类,HTTP COOKIE/HTTP SESSION 等
3、邮件解析库:mime解析库/RFC2047/RFC2048/mime base64/mime qp/mime uucode 等
4、网络通信库:阻塞/非阻塞网络 IO 库(其中 lib_acl_cpp 库通过嵌入 polarssl 而具备了 SSL 的能力)
5、服务器框架:包括进程池模式、线程池模式、非阻塞模式、UDP通信模式及触发器模式
6、事件引擎:支持 select、poll(for unix)、epoll(for linux)、kqueue(for bsd)、devpoll(for solaris)、iocp(for win32)、win32 窗口消息(for win32)事件引擎
7、通用连接池库:高效的连接池基础类库,支持丰富的功能
8、数据库客户端库:对原生的数据库客户端库进行了二次封装,使编程更为简易,功能更为丰富
9、xml/json 流式解析库:区别于网上其它已有的 xml/json 解析库,acl 中的 xml/json 解析库采用有限状态机方式解析数据,处理方式更为灵活

一、基础 C 库:lib_acl
.新特性:acl_scan_dir.c 增加了一些功能接口
.新特性:服务器框架 acl_master 支持非 root 用户身份运行
.性能优化:线程池库(acl_pthread_pool.c), worker_wait() 函数将空闲线程添加至线程池和从线程池中移除的操作放在 pthread_cond_timedwait 等待循环的外面,这样既可以减少添加/移除操作的次数,同时又可以使等待任务超时的线程迟早地退出
.删除:去掉了 acl_ioctl_app_main.c/acl_aio_app_main.c,将 acl_aio_app_main.c 功能分别合并至 acl_aio_server.c 中;将 acl_ioctl_server.c 的接口申明为过期,建议用户使用 acl_threads_server.c 中的功能接口
.问题修复:acl_vstream.c 中函数 acl_vstream_ftell 问题修复
.问题修复:acl_aqueue.c 异步线程消息队列支持无限等待方式

二、lib_protocol 库
.问题修复:http_hdr_req.c 中函数 http_hdr_req_cookies_parse 解析处理 cookie 时存在内存冲突
 
三、lib_acl_cpp 库
.新特性:文件类 fstream(fstream.cpp)增加了 ftell 方法,用来表示当前文件指针位置
.新特性:连接类 connect_client(connect_client.cpp)增加了设置/获取连接池对象的方法
.新特性:字符串类 string(string.cpp)增加了多个功能接口,方便对字符串的操作
.新特性:增加了目录扫描类 scan_dir(scan_dir.cpp),可以非常方便地对目录进行扫描等操作
.新特性:连接池管理类 connect_manager(connect_manager.cpp)增加了连接池故障自动恢复功能
.问题修复:异步处理服务器类 master_aio(master_aio.cpp)在析构函数中不应调用异步处理函数,否则会引起内存冲突
.问题修复:http 处理类 http_client(http_client.cpp) 构造函数中未对缓冲区 buf_ 初始化,当调用 reset 方法会造成内存冲突

参考链接:
技术博客:http://zsxxsz.iteye.com/
download:http://sourceforge.net/projects/acl/
svn:svn checkout svn://svn.code.sf.net/p/acl/code/trunk acl-code
github:https://github.com/zhengshuxin/acl
QQ 群:242722074

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:网络与服务器编程框架库 acl_3.0.19 发布
加载中

最新评论(7

郑树新
郑树新
acl 库的功能虽多,但最重要还是其中的服务器框架,该框架由经典的 postfix 邮件服务器程序中的相关模块抽象出来的,增加了线程池模式、非阻塞模式以及UDP模式;另外,使用生成向导,可以在几秒内就能生成一个服务器示例。
mickelfeng
mickelfeng
good
葡萄蛋
葡萄蛋
神器
滔哥
滔哥
这个好酷!!
郑树新
郑树新

引用来自“许雷神”的评论

支持一下
81
许雷神
许雷神
支持一下
返回顶部
顶部