acl 库是啥、主要包含哪些功能?
acl 工程是一个跨平台(支持LINUX,WIN32,Solaris,MacOS,FreeBSD)的网络通信库及服务器编程框架,同时提供更多的实用功能库。通过该库,用户可以非常容易地编写支持多种模式(多线程、多进程、非阻塞、触发器、UDP方式、协程方式)的服务器程序,WEB 应用程序,数据库应用程序。此外,该库还提供了常见应用的客户端通信库(如:HTTP、SMTP、ICMP、redis、disque、memcache、beanstalk、handler socket),常见流式编解码库:XML/JSON/MIME/BASE64/UUCODE/QPCODE/RFC2047 等。
### 2、acl 库支持哪些平台?
目前主要支持 Linux/Windows/Macos/Freebsd/Solaris(x86)。
### 3、acl 库主要包含几个库?
主要包括:lib_acl(用 C 语言写的基础库)、lib_protocol(用 C 语言写的一些网络应用协议库)、lib_acl_cpp(用 C++ 语言编写,封装了 lib_acl/lib_protocol 两个库,同时增加更多实用的功能库)、 lib_fiber(用 C 语言编写的支持高性能、高并发的网络协程库)、lib_rpc(用C++语言编写的封装了 google protobuf 网络库)。
### 4、acl 库有哪些外部依赖库?
lib_acl/lib_protocol/lib_fiber 仅依赖系统基础库;lib_acl_cpp 库的 db 模块依赖于 mysql 客户端库、sqlite 库,stream 流模块依赖于 polarssl 库(该库源码附在 acl/resource 目录下),另外,在 UNIX/LINUX 平台下还需要压缩库 --- libz 库(一般 LINUX 会自带该压缩库);lib_rpc 依赖于 protobuf 库。
### 5、没有这些第三方库 acl 能否使用?
可以。默认情况下,没有这些第三方库编译和使用 acl 库是没有问题的,只是不能使用 mysql/sqlite/ssl/protobuf 功能。