• 跨平台网络通信与服务器框架 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

  • 相关阅读:
    BZOJ 2034 【2009国家集训队】 最大收益
    vijos P1780 【NOIP2012】 开车旅行
    BZOJ 2115 【WC2011】 Xor
    BZOJ 3631 【JLOI2014】 松鼠的新家
    BZOJ 4717 改装
    BZOJ 2957 楼房重建
    BZOJ 4034 【HAOI2015】 T2
    BZOJ 1834 【ZJOI2010】 network 网络扩容
    BZOJ 2440 【中山市选2011】 完全平方数
    BZOJ 2733 【HNOI2012】 永无乡
  • 原文地址:https://www.cnblogs.com/findumars/p/5814274.html
Copyright © 2020-2023  润新知