acl
Acl is a mature C/C++ network library and server framework supporting coroutines, HTTP/HTTPS, Redis, MQTT, and database clients across Linux, Windows, macOS, Android, iOS, and HarmonyOS. Licensed under LGPL-2.1, it provides protocol implementations and connection pooling for production server applications.
Key facts
Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.
| Field | Value |
|---|---|
| Repository | acl-dev/acl |
| Owner | acl-dev |
| Primary language | C |
| License | LGPL-2.1 — OSI-approved |
| Stars | 3.1k |
| Forks | 949 |
| Open issues | 40 |
| Latest release | v3.6.8 (2026-06-04) |
| Last updated | 2026-06-27 |
| Source | https://github.com/acl-dev/acl |
What acl is
Acl offers a layered architecture with core modules for stream processing, non-blocking network I/O, coroutines (with system API hooks and shared stack mode), HTTP/1.1 with SSL/TLS, Redis clustering with smart slot management, MQTT, and abstracted database drivers (MySQL, PostgreSQL, SQLite). Built-in codecs include JSON, XML, BASE64, and MIME.
Get the acl source
Clone the repository and explore it locally.
git clone https://github.com/acl-dev/acl.gitcd acl# follow the project's README for install & configurationNeed it deployed, integrated, or customized instead? DEV.co ships production installs.
Best use cases
Implementation considerations
- Coroutine stack size and shared stack mode must be tuned per workload; undersizing causes stack overflow, oversizing wastes memory on high-concurrency scenarios.
- System API hooks for DNS and I/O differ across platforms (epoll on Linux, kqueue on macOS, iocp on Windows); test integration thoroughly on each target OS.
- Connection pooling (Redis, database, HTTP) requires explicit configuration; default pool sizes may not match production connection limits or latency requirements.
- LGPL-2.1 dynamic linking requirement means redistribution must ship Acl as a separate, replaceable library; static linking increases license compliance burden.
- Error handling in C/C++ bindings is manual; exceptions (C++) and return codes (C) must be checked explicitly to avoid silent failures in async contexts.
When to avoid it — and what to weigh
- Java/Python-first development teams — C/C++ binding and mental model overhead; lack of high-level abstractions common in JVM or Python ecosystems; steeper learning curve for async patterns.
- Fully managed cloud-native requirements — Acl is a library, not a managed service; deployment, scaling, and observability rely on operator expertise. Modern cloud stacks often favor language-agnostic, managed alternatives.
- Rapid prototyping without performance tuning — Acl demands careful memory, coroutine stack, and event loop configuration; not ideal for quick MVPs where defaults are unsafe or misaligned with workloads.
- Strict commercial license requirements — LGPL-2.1 requires dynamic linking and source availability for derivative works; proprietary or copyleft-sensitive projects require legal review before use.
License & commercial use
LGPL-2.1 (GNU Lesser General Public License v2.1). Permits commercial use, modification, and distribution under conditions: (1) dynamic linking allowed; (2) source code or source availability mechanism required; (3) license copy must be included; (4) derivative works under LGPL-2.1; (5) static linking requires full source redistribution. Requires legal review for proprietary products.
Commercial use is permitted under LGPL-2.1 if terms are met: dynamic linking must be possible (users can upgrade Acl independently) and source must be available. Static linking or closed-source modifications may violate the license. Consult legal counsel before embedding in proprietary software; consider LGPL exceptions or alternative dual-licensing if static linking is mandatory.
DEV.co evaluation signals
Editorial assessment — not user reviews. Directional, with an explicit confidence level.
| Signal | Assessment |
|---|---|
| Maintenance | Active |
| Documentation | Adequate |
| License clarity | Clear |
| Deployment complexity | High |
| DEV.co fit | Good |
| Assessment confidence | High |
No penetration test data, audit reports, or CVE history provided. Considerations: (1) Coroutine system API hooks span multiple layers (DNS, I/O, sockets)—implementation flaws could affect all protocols simultaneously; (2) TLS/SSL support depends on external libraries (OpenSSL); cipher and protocol defaults require review; (3) DNS implementation is custom; potential for cache poisoning or DoS vectors unclear; (4) Connection pooling and credential handling are application-level; no built-in secret management; (5) MQTT, Redis, HTTP modules handle untrusted input; buffer overflow, injection, or protocol-state attacks are possible if input validation is missing. Security-critical deployments should perform code review and threat modeling.
Alternatives to consider
Boost.Asio (C++)
Cross-platform async I/O library with timer, SSL, UDP support; header-only and modular; larger ecosystem but steeper learning curve; Apache 2.0 license (permissive).
libuv (C)
Cross-platform event loop and async I/O (no coroutines); lighter footprint; powers Node.js; MIT license. Lacks built-in protocol support (Redis, MQTT, HTTP); requires additional libraries.
gRPC / Protocol Buffers (Language-agnostic)
Modern RPC framework with HTTP/2, TLS, and language bindings; cloud-native design. Overkill for simple server patterns; less suitable for long-lived connections and legacy protocol stacks.
Build on acl with DEV.co software developers
Acl is production-ready for high-concurrency networked services and cross-platform deployments. Requires upfront integration, platform-specific testing, and LGPL compliance review. Contact us to assess fit, licensing, and migration strategy.
Talk to DEV.coRelated on DEV.co
Explore the category and the services that help you build with it.
acl FAQ
Can I statically link Acl in a proprietary application?
How does Acl coroutine performance compare to OS threads?
What is the difference between C and C++ versions?
Does Acl support Redis Cluster automatic failover?
Work with a software development agency
From first prototype to production, DEV.co delivers software development services around tools like acl. Our software development agency staffs experienced software developers and web developers for custom software development, web development, integrations, and ongoing support across open-source databases and beyond.
Evaluate Acl for Your C/C++ Backend?
Acl is production-ready for high-concurrency networked services and cross-platform deployments. Requires upfront integration, platform-specific testing, and LGPL compliance review. Contact us to assess fit, licensing, and migration strategy.