Repolode
acl-dev

acl-dev/acl

跨平台 C/C++ 网络通信库与服务端框架,内置协程、HTTP、Redis、MQTT 及数据库客户端。

Star
3,106
Fork
947
未关闭 Issue
40
最近提交
26天前

这是什么?

Acl(Advanced C/C++ Library)是一个跨平台的网络通信库和服务端编程框架,支持 Linux、Windows、macOS、FreeBSD、Solaris、Android、iOS 和 HarmonyOS。库中内置了 HTTP/HTTPS、WebSocket、SMTP、MQTT、Redis、Memcached、Beanstalk 等协议的实现,并提供 XML、JSON、MIME、Base64 等编解码模块。

协程模块会挂钩系统 IO 接口,使阻塞风格的代码以异步方式运行。服务端框架提供进程、线程、AIO、协程、UDP 以及定时触发等多种服务模板。Redis 客户端支持单机、集群和 pipeline 模式并带有连接池,同时为 MySQL、PostgreSQL 和 SQLite 提供统一的数据库访问接口。

构建方式包括 Make、CMake 和 XMake,Windows 下提供 Visual Studio 工程,macOS/iOS 使用 Xcode,Android 与鸿蒙分别提供 Android Studio 和 DevEco Studio 工程。项目采用 LGPL-2.1 许可证。

核心功能

  • 01跨平台 C/C++ 网络编程,支持 TCP、UDP 和 UNIX 域套接字
  • 02协程库挂钩系统 IO 接口,并提供共享栈模式
  • 03HTTP/1.1 客户端与服务端,服务端接口类似 Java Servlet,支持 Gzip 和 WebSocket
  • 04Redis 客户端支持单机、集群和 pipeline 模式,并内置连接池
  • 05实现 MQTT 3.1.1 协议,采用流式解析器
  • 06为 MySQL、PostgreSQL 和 SQLite 提供统一的数据库接口

适用场景

  • 用 C 或 C++ 通过协程构建高并发后端服务
  • 在移动端或嵌入式平台上开发 Redis、MQTT 或 HTTP 客户端
  • 使用进程、线程或 AIO 服务模型编写网络服务器
  • 开发需要统一接口同时访问 MySQL、PostgreSQL 和 SQLite 的数据库应用

快速上手

  1. 1

    按照 README 第 3.1 节的编译指南为你的平台编译 Acl

使用前须知

  • 采用 LGPL-2.1 许可证,这是一种弱 Copyleft 许可证,集成到闭源产品中时需要留意合规要求。
  • 这是一个规模较大的 C/C++ 框架,模块众多,学习曲线较陡。

收录于专题

标签

常见问题

acl 是什么?
跨平台 C/C++ 网络通信库与服务端框架,内置协程、HTTP、Redis、MQTT 及数据库客户端。 Acl(Advanced C/C++ Library)是一个跨平台的网络通信库和服务端编程框架,支持 Linux、Windows、macOS、FreeBSD、Solaris、Android、iOS 和 HarmonyOS。库中内置了 HTTP/HTTPS、WebSocket、SMTP、MQTT、Redis、Memcached、Beanstalk 等协议的实现,并提供 XML、JSON、MIME、Base64 等编解码模块。
acl 可以免费使用吗?用的什么许可证?
acl 以 LGPL-2.1 许可证开源。用于商业产品前,请先确认许可证条款。
acl 还在维护吗?
活跃维护中。acl 最近一次提交是在 2026年10月12日。
acl 适合用来做什么?
用 C 或 C++ 通过协程构建高并发后端服务 在移动端或嵌入式平台上开发 Redis、MQTT 或 HTTP 客户端 使用进程、线程或 AIO 服务模型编写网络服务器 开发需要统一接口同时访问 MySQL、PostgreSQL 和 SQLite 的数据库应用
acl 怎么安装和运行?
按照 README 第 3.1 节的编译指南为你的平台编译 Acl
在哪里获取 acl?
源代码和安装说明在 GitHub 上:https://github.com/acl-dev/acl

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目