# miekg/dns

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/miekg-dns).**

8,709 stars · 1,194 forks · Go · BSD-3-Clause

## Links

- GitHub: https://github.com/miekg/dns
- Homepage: https://miek.nl/2014/august/16/go-dns-package
- awesome-repositories: https://awesome-repositories.com/repository/miekg-dns.md

## Topics

`dns` `dns-library` `dnssec` `go`

## Description

This project is a Go DNS library used for implementing DNS clients and servers. It provides a toolkit for packet exchange, record parsing, and the development of custom nameservers.

The library includes a DNS server framework and a zone manager for parsing standard zone files and synchronizing data via zone transfers. It features a dedicated DNSSEC implementation library for generating cryptographic keys and validating signatures, as well as a TLS transport for encrypted connections between clients and servers.

The system covers a broad range of capabilities including DNS resolver functionality, resource record data modeling, and the administration of domain namespaces. It handles the translation of network byte streams into structured objects and supports secure communication protocols.

## Tags

### Networking & Communication

- [Authoritative Name Server Frameworks](https://awesome-repositories.com/f/networking-communication/encrypted-dns-servers/authoritative-name-server-frameworks.md) — Provides a comprehensive framework for creating nameservers that manage zone transfers and secure communication. ([source](https://cdn.jsdelivr.net/gh/miekg/dns@master/README.md))
- [DNS Protocol Libraries](https://awesome-repositories.com/f/networking-communication/dns-protocol-libraries.md) — Provides a complete Go library for implementing DNS clients and servers with full packet and record support.
- [DNS Query Clients](https://awesome-repositories.com/f/networking-communication/dns-query-clients.md) — Implements software components used to construct and transmit DNS queries to remote servers.
- [DNS Record Resolvers](https://awesome-repositories.com/f/networking-communication/dns-query-routers/dns-reconnaissance/dns-record-resolvers.md) — Enables requesting specific domain data from nameservers and extracting the answer section. ([source](https://miek.nl/2014/august/16/go-dns-package))
- [Record Representation](https://awesome-repositories.com/f/networking-communication/dns-record-management/record-representation.md) — Provides data structures for representing diverse DNS resource records, including names and types.
- [DNS Server Frameworks](https://awesome-repositories.com/f/networking-communication/dns-server-frameworks.md) — Provides a toolkit for building custom name servers with support for zone transfers and secure protocols.
- [Reverse DNS Zone Calculation](https://awesome-repositories.com/f/networking-communication/dns-zone-discovery/zone-management/reverse-dns-zone-calculation.md) — Implements a zone manager for organizing and updating name server zone data from files or strings. ([source](https://miek.nl/2014/august/16/go-dns-package/))
- [DNS Zone Transfers](https://awesome-repositories.com/f/networking-communication/dns-zone-transfers.md) — Implements full and incremental zone transfers to synchronize data between distributed DNS servers. ([source](https://cdn.jsdelivr.net/gh/miekg/dns@master/README.md))
- [Zone Management](https://awesome-repositories.com/f/networking-communication/dns-zone-transfers/zone-management.md) — Maintains an in-memory representation of domain namespaces to handle queries and zone transfers.
- [Zone File Parsers](https://awesome-repositories.com/f/networking-communication/dns-zone-transfers/zone-management/zone-file-parsers.md) — Provides the ability to parse standard zone files including origin and TTL directives. ([source](https://cdn.jsdelivr.net/gh/miekg/dns@master/README.md))
- [DNS Packet Handling](https://awesome-repositories.com/f/networking-communication/packet-engines/udp-datagram-transmitters/dns-packet-handling.md) — Provides functionality for sending and receiving DNS queries and replies via UDP datagrams. ([source](https://miek.nl/2014/august/16/go-dns-package/))
- [DNS-over-TLS Servers](https://awesome-repositories.com/f/networking-communication/dns-servers/dns-over-tls-servers.md) — Implements encrypted connections between DNS clients and servers using the TLS protocol.
- [Encrypted DNS Servers](https://awesome-repositories.com/f/networking-communication/encrypted-dns-servers.md) — Provides a TLS transport implementation to enable the creation of encrypted DNS servers. ([source](https://cdn.jsdelivr.net/gh/miekg/dns@master/README.md))
- [Protocol Abstraction Layers](https://awesome-repositories.com/f/networking-communication/protocol-abstraction-layers.md) — Decouples core DNS logic from transport layers to support UDP, TCP, and TLS connections.

### Programming Languages & Runtimes

- [DNS Wire-Format Parsers](https://awesome-repositories.com/f/programming-languages-runtimes/binary-parsing/dns-wire-format-parsers.md) — Translates raw network byte streams into structured objects using the DNS wire format specification.

### Security & Cryptography

- [DNSSEC Zone Signing](https://awesome-repositories.com/f/security-cryptography/dnssec-zone-signing.md) — Provides a library for generating cryptographic keys and signing DNS zones.
- [DNSSEC Signature Validation](https://awesome-repositories.com/f/security-cryptography/dnssec-zone-signing/dnssec-signature-validation.md) — Provides a verification pipeline to validate digital signatures of incoming DNSSEC responses.
- [Custom DNS Resolvers](https://awesome-repositories.com/f/security-cryptography/encrypted-dns-resolvers/custom-dns-resolvers.md) — Performs client-side lookups and queries remote name servers to translate hostnames into IP addresses. ([source](https://cdn.jsdelivr.net/gh/miekg/dns@master/README.md))
- [Custom DNS Server Development](https://awesome-repositories.com/f/security-cryptography/encrypted-dns-resolvers/custom-dns-server-development.md) — Provides the building blocks to develop custom Go-based nameservers for managing domain records.
- [Encrypted DNS Resolvers](https://awesome-repositories.com/f/security-cryptography/encrypted-dns-resolvers.md) — Secures name resolution queries using transport layer security to protect user privacy.

### Part of an Awesome List

- [Networking Libraries](https://awesome-repositories.com/f/awesome-lists/devops/networking-libraries.md) — Library for handling DNS protocols.
- [Networking](https://awesome-repositories.com/f/awesome-lists/devtools/networking.md) — Comprehensive library for DNS operations.
- [Networking and Protocols](https://awesome-repositories.com/f/awesome-lists/devtools/networking-and-protocols.md) — Comprehensive library for DNS protocol operations.
- [Networking Libraries](https://awesome-repositories.com/f/awesome-lists/devtools/networking-libraries.md) — Library for DNS protocol handling.
