# c-ares/c-ares

A C library for asynchronous DNS requests

Repository: https://github.com/c-ares/c-ares
Canonical: https://ross.abutalabs.com/products/c-ares
Homepage: https://c-ares.org/
Language: C
License: MIT
License Family: permissive
Topics: dns, resolver, dns-queries, c, async, library
Last push: 2026-08-24T02:07:50+00:00

## Health v2 (maintenance only)
Score: 97/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 99, release rhythm 92, longevity 100
- inputs: {"age_days": 6010, "days_push": 10, "days_rel": 57, "gap_med": 29.5, "n_releases_24m": 9}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 2182, forks 680 (observed 2026-08-28T04:06:23.386221+00:00)

## What it is
c-ares is a modern asynchronous DNS (stub) resolver library written in C. It provides non-blocking DNS query interfaces that abstract the intricacies of the DNS protocol, suitable for applications needing parallel or non-blocking resolution.

## Use cases
- resolve hostnames asynchronously without blocking my event loop
- perform many DNS queries in parallel from a C application
- replace the unreliable system DNS resolver with a better one
- embed a DNS resolver in a cross-platform network application
- build a custom DNS client with support for modern RFCs
- resolve names on Windows, Linux, macOS, Android, and iOS with one library

## When to choose
- you need non-blocking or parallel DNS resolution in C or C++
- you want a portable resolver that works consistently across operating systems
- you need a security-hardened, actively maintained, MIT-licensed DNS library
- you need modern DNS features like query caching, DNS cookies, or 0x20 encoding

## When to avoid
- you only need simple synchronous lookups and are happy with your OS resolver
- you are working in a high-level language that already ships a capable async DNS client
- you need a full recursive/authoritative DNS server rather than a stub resolver

## Facets
- artifact type: library
- maturity: stable
- function: networking, http-client, developer-tools
- domain: networking, developer-tools, apis
- platform: windows, cross-platform, c, cpp
- tags: dns, resolver, async, c-library, stub-resolver, linux, macos

## Member repositories
- c-ares/c-ares (main) score 97

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:06:23.386221+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T02:48:16.668152+00:00, confidence not recorded.
  - readme: https://github.com/c-ares/c-ares (fetched 2026-08-28T04:06:23.386221+00:00, sha bbfb224a93b6)
  - homepage: https://c-ares.org/ (fetched 2026-08-29T10:28:25.429249+00:00, sha e829f5b5bcd6)
  - site_page: https://c-ares.org/docs.html (fetched 2026-08-29T10:28:25.433606+00:00, sha de03c984f3fe)
  - site_page: https://c-ares.org/features (fetched 2026-08-29T10:28:25.435664+00:00, sha ae228dd12ea5)
  - site_page: https://c-ares.org/changelog.html (fetched 2026-08-29T10:28:25.439016+00:00, sha 0a19490125dd)
- Data as of 2026-08-30T08:39:29.467469+00:00.
