macOS
brew install ldnsprovider-native install command
brew / rank 875
DNS library written in C. Version 1.9.2 via Homebrew; verified 2026-06-22.
install
brew install ldnsprovider-native install command
overview
DNS library written in C
history
ldns is NLnet Labs' C library for DNS and DNSSEC programming, accompanied by command-line tools such as drill and many DNSSEC utilities. NLnet Labs describes its goal as simplifying DNS programming in C while supporting low-level DNS and DNSSEC operations.
The project appeared in 2005 during the period when DNSSEC tooling was maturing. Its changelog records a first usable 0.50 release in May 2005, an online repository in June 2005, and a 1.0.0 release in October 2005 that added drill to ldns, zonefile parsing, an experimental signer, and a BSD license.
ldns evolved into both a library and a toolbox. Drill, originally important enough that documentation says part of ldns was derived from it, became included in ldns releases from version 1.0.0 onward. The examples directory grew into a collection of practical DNSSEC and zone tools, including signers, validators, key helpers, and packet utilities.
Later releases tracked DNS standards work. The changelog records additions such as NSEC3-related utilities, DANE support in 2012, SVCB/HTTPS support in the 1.8 series, and newer resource-record handling in the 1.9 series. NLnet Labs stated that ldns entered maintenance mode in 2020, with ongoing fixes and occasional experimental use rather than broad feature expansion.
ldns gained adoption among DNS implementers, operators, and package maintainers because it offered a C API plus ready-to-run diagnostic tools. Distribution packaging reflects that split: some systems package the tools as ldnsutils or drill while others package the library and tools together.
The project also became a bridge between DNS research and production packaging. NLnet Labs explicitly notes use for proof-of-concept work around Internet Drafts, while the maintained command-line tools made it useful for operators who needed DNSSEC-aware zone inspection, signing, verification, and query tracing.
Developers use the library through ldns structures such as resource records, packets, zones, and resolvers. Command-line users most often encounter drill as a dig-like DNS inspection tool and the ldns-* utilities for DNSSEC key, zone, signing, walking, comparison, and verification workflows.
The documentation stresses OpenSSL-backed cryptographic features, optional builds without OpenSSL, IPv4/IPv6 support, TSIG, DNSSEC signing and verification, manual pages, and API documentation.
ldns matters to package nerds because it is a compact DNSSEC lab in package form: a C library, a resolver/query tool, many small executables, optional crypto features, Python bindings, and a long changelog tied to RFC and draft support. It is also a good example of an upstream declaring a maintenance-mode successor path while keeping old Unix packages useful.
NLnet Labs names the Rust domain library as the natural successor to the ldns library, dnst as drop-in replacements for common example utilities, and dnsi as a reimagined DNS inspection tool. That makes ldns a legacy-but-alive package with clear lineage into newer NLnet Labs DNS tooling.
security posture
library-like package without higher-risk signals.
green risk · low confidence · appliance
Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.
executables
| Command | Kind | Exposure | Note |
|---|---|---|---|
drill | executable | indexed executable | Discovered from the local executable index. |
ldns-chaos | executable | indexed executable | Discovered from the local executable index. |
ldns-compare-zones | executable | indexed executable | Discovered from the local executable index. |
ldns-config | executable | indexed executable | Discovered from the local executable index. |
ldns-dane | executable | indexed executable | Discovered from the local executable index. |
ldns-dpa | executable | indexed executable | Discovered from the local executable index. |
ldns-gen-zone | executable | indexed executable | Discovered from the local executable index. |
ldns-key2ds | executable | indexed executable | Discovered from the local executable index. |
ldns-keyfetcher | executable | indexed executable | Discovered from the local executable index. |
ldns-keygen | executable | indexed executable | Discovered from the local executable index. |
ldns-mx | executable | indexed executable | Discovered from the local executable index. |
ldns-notify | executable | indexed executable | Discovered from the local executable index. |
ldns-nsec3-hash | executable | indexed executable | Discovered from the local executable index. |
ldns-read-zone | executable | indexed executable | Discovered from the local executable index. |
ldns-resolver | executable | indexed executable | Discovered from the local executable index. |
ldns-revoke | executable | indexed executable | Discovered from the local executable index. |
ldns-rrsig | executable | indexed executable | Discovered from the local executable index. |
ldns-signzone | executable | indexed executable | Discovered from the local executable index. |
ldns-test-edns | executable | indexed executable | Discovered from the local executable index. |
ldns-testns | executable | indexed executable | Discovered from the local executable index. |
ldns-update | executable | indexed executable | Discovered from the local executable index. |
ldns-verify-zone | executable | indexed executable | Discovered from the local executable index. |
ldns-version | executable | indexed executable | Discovered from the local executable index. |
ldns-walk | executable | indexed executable | Discovered from the local executable index. |
ldns-zcat | executable | indexed executable | Discovered from the local executable index. |
ldns-zsplit | executable | indexed executable | Discovered from the local executable index. |
ldnsd | executable | indexed executable | Discovered from the local executable index. |
freshness
These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.
install metadata
| Package key | brew:ldns |
|---|---|
| Version | 1.9.2 |
| Package manager | Homebrew |
| Homepage | https://nlnetlabs.nl/projects/ldns/ |
| Last updated | 2026-06-22T14:05:09-07:00 |
| Pulse | updated |
| Bottle | not recorded |
| Service | none declared |
source trail
This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.
View the package source record on GitHub.