Repolode
acl-dev

acl-dev/acl

A C/C++ cross-platform network communication library and server framework with coroutines, HTTP, Redis, MQTT and database clients.

Stars
3,106
Forks
947
Open issues
40
Last commit
26 days ago

What is it?

Acl (Advanced C/C++ Library) is a cross-platform networking library and server programming framework. It covers Linux, Windows, macOS, FreeBSD, Solaris, Android, iOS and HarmonyOS, and includes built-in implementations of HTTP/HTTPS, WebSocket, SMTP, MQTT, Redis, Memcached and Beanstalk clients, along with XML, JSON, MIME and Base64 codecs.

The library provides a coroutine module that hooks system IO APIs so blocking-style code runs asynchronously, and a server framework with process, thread, AIO, coroutine, UDP and scheduled-trigger service templates. The Redis client supports standalone, cluster and pipeline modes with connection pooling, and a unified abstraction covers MySQL, PostgreSQL and SQLite.

Build options include Make, CMake and XMake, with Visual Studio projects for Windows and Xcode, Android Studio and DevEco Studio projects for mobile platforms. The project is licensed under LGPL-2.1.

Key features

  • 01Cross-platform C/C++ networking with TCP, UDP and UNIX socket support
  • 02Coroutine library that hooks system IO APIs and provides a shared-stack mode
  • 03HTTP/1.1 client and server with a Servlet-like interface, Gzip and WebSocket
  • 04Redis client supporting standalone, cluster and pipeline modes with connection pooling
  • 05MQTT 3.1.1 protocol implementation with a streaming parser
  • 06Unified interface for MySQL, PostgreSQL and SQLite

Use cases

  • Building high-concurrency backend services in C or C++ with coroutines
  • Writing cross-platform clients for Redis, MQTT or HTTP on mobile and embedded targets
  • Creating network servers using process, thread or AIO service models
  • Developing database applications that need one API across MySQL, PostgreSQL and SQLite

Quick start

  1. 1

    Compile Acl for your platform using the compilation guide in section 3.1 of the README

Things to know

  • Licensed under LGPL-2.1, a weak copyleft license that requires care when linking into proprietary products.
  • Large C/C++ framework with many modules, so there is a substantial learning curve.

In collections

Topics

FAQ

What is acl?
A C/C++ cross-platform network communication library and server framework with coroutines, HTTP, Redis, MQTT and database clients. Acl (Advanced C/C++ Library) is a cross-platform networking library and server programming framework. It covers Linux, Windows, macOS, FreeBSD, Solaris, Android, iOS and HarmonyOS, and includes built-in implementations of HTTP/HTTPS, WebSocket, SMTP, MQTT, Redis, Memcached and Beanstalk clients, along with XML, JSON, MIME and Base64 codecs.
Is acl free to use? What license does it have?
acl is open source under the LGPL-2.1 license. Check the license terms before using it in commercial products.
Is acl still maintained?
Actively maintained. The last commit to acl was on Oct 12, 2026.
What can I use acl for?
Building high-concurrency backend services in C or C++ with coroutines Writing cross-platform clients for Redis, MQTT or HTTP on mobile and embedded targets Creating network servers using process, thread or AIO service models Developing database applications that need one API across MySQL, PostgreSQL and SQLite
How do I install acl?
Compile Acl for your platform using the compilation guide in section 3.1 of the README
Where can I get acl?
The source code and installation instructions are on GitHub: https://github.com/acl-dev/acl

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects