A lightweight, portable, and easy-to-use asynchronous networking library for C.
Dyad.c is an asynchronous networking library for C that enables developers to build network applications like servers and clients. It solves the problem of adding efficient, non-blocking network communication to C projects without the complexity of larger frameworks.
C developers needing lightweight networking for embedded systems, tools, or applications where portability and simplicity are critical.
Developers choose Dyad.c for its minimal footprint, ease of integration, and straightforward event-driven API, making it ideal for projects that require reliable networking without external dependencies.
Asynchronous networking for C
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
As a single-file library, it can be easily added to any C project by including dyad.c and dyad.h, with no complex build systems required, as emphasized in the getting started section.
The API uses clear callbacks like onData and onAccept, making asynchronous I/O management intuitive without multi-threading complexity, as shown in the server and client examples.
Works on multiple platforms; Windows only requires linking to ws2_32, ensuring easy deployment across environments, as noted in the README.
With no external dependencies and a single-file implementation, it's ideal for resource-constrained projects like embedded systems or tools.
Only supports TCP networking, with no built-in features for UDP, SSL/TLS, or higher-level protocols like HTTP, requiring additional implementation effort.
Documentation is limited to an API overview and basic examples, which may be insufficient for debugging complex scenarios or advanced usage.
Requires developers to manually call dyad_update() in a loop, which can be inefficient and error-prone compared to integrated event loops in more robust libraries.