• 跨平台网络通信与服务器框架 acl 3.2.0 发布,acl_cpp 是基于 acl 库的 C++ 库


    acl 3.2.0 版本发布了,acl 是 one advanced C/C++ library 的简称,主要包括网络通信库以及服务器框架库等功能,支持 Linux/Windows/Solaris/FreeBsd/MacOS 平台;整个 acl 项目主要包含三个函数库:lib_acl(纯C开发的基础库,主要包含网络通信及服务器编程框架以及其它丰富的功能)、lib_protocol(包含 HTTP/PING/SMTP 通信协议的C语言实现)、lib_fiber(网络协程库)、lib_acl_cpp(基于 lib_acl 及 lib_protocol 两个C库,提供了更为强大的编程接口及丰富的功能类)。

    本次 acl 升级的最主要内容为:增加了类似于 golang 中的网络协程库,该库使 C/C++ 程序员可以以顺序编程的思维方式快速地编写出高并发、高性能的网络服务器程序,该网络协程库参考了 golang 作者 Russ Cox 早年发布的 libtask 设计原型,同时还参考了 libmill/seatar/coroutines/libgo/libco/st 等大量有关协程的库,在此一并表示感谢,同时还需感谢 niukey@qq.com 对于协程的贡献; 此外,lib_acl/lib_acl_cpp 也进行了功能改进和问题修复。

    acl 包括以下丰富的常用函数库:
    1、服务器框架:包括进程池模式、线程池模式、非阻塞模式、UDP通信模式、触发器模式以及协程模式
    2、网络通信库:阻塞/非阻塞网络 IO 库(其中 lib_acl_cpp 库通过嵌入 polarssl 而具备了 SSL 通信能力)
    3、HTTP 网络库:HTTP 客户端/服务端库,HTTP 服务端支持 HttpServlet 接口访问方式;支持 HTTP cookies/session;HTTP 客户端支持连接池及连接池集群
    4、redis 客户端库:实现了 redis 客户端命令中 12 个大类中的总共 150 多个命令,支持连接池及集群连接池方式
    5、常见网络应用库: SMTP 客户端库/PING 库/DNS 解析库/memcache 客户端库/handler socket 客户端库/beanstalk 客户端库/disque 客户端库
    6、邮件解析库:mime解析库/RFC2047/RFC2048/mime base64/mime qp/mime uucode 等
    7、事件引擎:支持 select、poll(for unix)、epoll(for linux)、kqueue(for bsd)、devpoll(for solaris)、iocp(for win32)、win32 窗口消息(for win32)事件引擎
    8、通用连接池库:高效的连接池基础类库,支持丰富的功能
    9、数据库客户端库:对原生的数据库客户端库进行了二次封装,使编程更为简易,功能更为丰富,支持连接池及连接池集群管理功能
    10、xml/json 流式解析库:区别于网上其它已有的 xml/json 解析库,acl 中的 xml/json 解析库采用有限状态机方式解析数据,处理方式更为灵活
    11、网络协程库:该库将阻塞 IO 模式在底层通过上下文切换和事件触发方式转变为非阻塞模式,从而方便程序员快速编写高并发、高性能的网络服务

    示例:
    1、lib_acl/samples: 该目录下有大量的基于 lib_acl C 库的示例
    2、lib_protocol/samples: 该目录下有大量的基于 lib_protocol C 库的示例
    3、lib_acl_cpp/samples: 该目录下有大量的基于 lib_acl_cpp C++ 库的示例
    4、lib_fiber/samples:该目录下有大量的基于协程的网络客户端/服务端示例

    应用:
    1、app/redis_tools: 该目录下为 redis 集群管理、监控及智能创建工具
    2、app/wizard:用来自动生成 acl 服务器框架的向导程序
    3、app/master_dispatch:用于管理和分发客户端连接的服务程序
    4、app/gid:用来产生全局唯一整型 ID 的服务程序及客户端库
    5、app/wizard_demo:为一些服务器测试程序

    http://www.oschina.net/news/76568/acl-3-2-0

    https://www.oschina.net/p/acl

    https://github.com/acl-dev/acl
    https://github.com/pengdu/acl

    acl 工程是一个跨平台(支持LINUX,WIN32,Solaris,MacOS,FreeBSD)的网络通信库及服务器编程框架,同时提供更多的实用功能库。通过该库,用户可以非常容易地编写支持多种模式(多线程、多进程、非阻塞、触发器、UDP方式、协程方式)的服务器程序,WEB 应用程序,数据库应用程序。此外,该库还提供了常见应用的客户端通信库(如:HTTP、SMTP、ICMP、redis、memcache、beanstalk、handler socket),常见流式编解码库:XML/JSON/MIME/BASE64/UUCODE/QPCODE/RFC2047 etc。

    https://github.com/zhengshuxin/acl

    acl_cpp 是基于 acl 库的 C++ 库
    https://sourceforge.net/projects/aclcpp/
    https://www.oschina.net/p/acl_cpp

  • 相关阅读:
    [悟]你为什么想创业
    [悟] 因上努力,果上随缘
    自己写个多任务多线程断点下载框架
    大道甚夷,而人好径
    [经验帖]外包如何定价
    python 基础语法
    python 中文编码问题
    python的运行机制和版本区别
    [转]linux 调用动态库so文件
    shell join详解
  • 原文地址:https://www.cnblogs.com/findumars/p/5814274.html
Copyright © 2020-2023  润新知