A cross-platform C/C++ network library with an event loop plus TCP/UDP, SSL, HTTP, WebSocket, MQTT and Redis client/server support.
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
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
Cross-platform C++ class libraries for building network-centric applications, covering HTTP, networking, databases, XML/JSON and logging.
A simple, fast, cross-platform C++ multimedia library for windowing, 2D graphics, audio and networking.
Express-inspired web framework for Go, built on the fasthttp engine, for writing REST APIs and web servers.
A lightweight C++ base library bundling goroutine-style coroutines, networking, logging, flag parsing, JSON, unit testing and benchmarking.
A PHP extension providing an event-driven networking engine and coroutine runtime for building long-running TCP, UDP, HTTP, and WebSocket services.