A C library for asynchronous DNS resolution, designed for non-blocking and parallel queries.
c-ares is a C library for asynchronous DNS resolution, designed to perform non-blocking and parallel DNS queries. It abstracts the intricacies of the DNS protocol, providing a modern, secure alternative to system resolvers. The library focuses on cross-platform compatibility and adherence to the latest DNS RFCs.
Developers building network applications in C or other languages that require efficient, non-blocking DNS resolution, such as embedded systems, servers, and high-performance clients.
c-ares offers a more secure and reliable DNS resolver than many system-provided alternatives, with a strong emphasis on asynchronous operations, extensive RFC support, and rigorous security practices through continuous fuzzing and testing.
A C library for asynchronous DNS requests
Enables non-blocking and parallel DNS queries, preventing application stalls, as emphasized in the README for applications needing multiple queries without blocking.
Runs on Linux, FreeBSD, macOS, Windows, Android, iOS, and more, ensuring consistent DNS resolution across diverse operating systems.
Implements safe parsers and data builders, validated through extensive automated testing and constant fuzzing via OSS Fuzz, reducing common C library vulnerabilities.
Supports key DNS RFCs including EDNS0, IPv6 (AAAA), SRV, DANE, SVCB/HTTPS, and DNS Cookies, keeping up with the latest protocol features.
Aims to be a better DNS resolver than system-provided ones, as stated in the README, offering improved reliability and performance regardless of platform.
Requires C knowledge or language bindings for integration, which can be a hurdle for projects in non-C languages, adding complexity to setup.
Only functions as a DNS stub resolver, lacking features for full DNS server operations like authoritative serving or caching recursion, as admitted in its design.
While it supports modern RFCs, DNS over HTTPS (DoH) is not mentioned in the features, limiting use in privacy-focused applications without additional implementation.
Adding a C library to projects, especially in non-C environments, involves build system adjustments and potential binding issues, increasing initial setup effort.
Simple, secure & standards compliant web server for the most demanding of applications
:zap: KCP - A Fast and Reliable ARQ Protocol
A C++ header-only HTTP/HTTPS server and client library
Embedded web server, with TCP/IP network stack, MQTT and Websocket
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.