DEV.co
Open-Source Databases · acl-dev

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.

Source: GitHub — github.com/acl-dev/acl
3.1k
GitHub stars
949
Forks
C
Primary language
LGPL-2.1
License (OSI-approved)

Key facts

Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.

FieldValue
Repositoryacl-dev/acl
Owneracl-dev
Primary languageC
LicenseLGPL-2.1 — OSI-approved
Stars3.1k
Forks949
Open issues40
Latest releasev3.6.8 (2026-06-04)
Last updated2026-06-27
Sourcehttps://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.

Quickstart

Get the acl source

Clone the repository and explore it locally.

terminalbash
git clone https://github.com/acl-dev/acl.gitcd acl# follow the project's README for install & configuration

Need it deployed, integrated, or customized instead? DEV.co ships production installs.

Best use cases

High-concurrency networked servers

Coroutine support with system API hooks and event engines (epoll, kqueue, iocp) enable efficient concurrent connection handling on Linux, macOS, and Windows without thread overhead.

Redis client applications at scale

Smart cluster management with automatic hash-slot adaptation, connection pooling, and pipeline support simplifies multi-node Redis deployments in production.

Cross-platform C/C++ backend services

Unified abstractions for HTTP, MQTT, database drivers, and networking allow single codebase deployment across embedded systems (iOS, Android), servers (Linux), and desktops (Windows, macOS).

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.

SignalAssessment
MaintenanceActive
DocumentationAdequate
License clarityClear
Deployment complexityHigh
DEV.co fitGood
Assessment confidenceHigh
Security considerations

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.

Software development agency

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.co

Related open-source tools

Surfaced by semantic similarity across the DEV.co open-source index.

Related 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?
Not without legal risk under LGPL-2.1. Static linking of LGPL-2.1 code may require full source redistribution of your application. Dynamic linking is the intended and safe approach. Consult your legal team or consider relicensing arrangements with the Acl maintainers.
How does Acl coroutine performance compare to OS threads?
Coroutines have lower context-switch overhead and memory footprint (shared stack mode reduces this further). Exact performance depends on event engine efficiency, workload (I/O-bound vs. CPU-bound), and tuning. Benchmarks are not provided in the data; conduct load testing on your target platform.
What is the difference between C and C++ versions?
Data mentions lib_acl_cpp (C++ version) with STL-style interfaces and lib_acl (C version). C++ provides higher-level abstractions (e.g., HttpServlet-like server API, STL containers for Redis commands); C is lower-level and more portable. Exact feature parity is not documented.
Does Acl support Redis Cluster automatic failover?
Smart cluster management with automatic hash-slot adaptation is confirmed; exact failover semantics (detection time, recovery strategy) are not detailed. Review source code or test failover scenarios before production deployment.

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.