Ad

dns: Fast, feature-rich DNS library for Go

dns: Provides a complete and performant DNS library for Go, supporting all RFCs and advanced features like DNSSEC and TLS.
Screenshot of miekg/dns homepage

dns implements a comprehensive DNS library in Go, emphasizing a lean design and adherence to DNS standards. It supports both server-side and client-side programming, offering functionality for building DNS servers, resolvers, and applications. The library handles all DNS record types, including DNSSEC records, and implements various extensions and protocols like TCP/UDP, EDNS0, and DoT/DoH.

Key features include support for all RFCs, a fast and efficient implementation, robust DNSSEC support (signing, validating, and key generation), and comprehensive EDNS support including NSID and Cookies. The library provides a clean API, mimicking the net/http package for server-side programming and maintaining a small footprint. It embraces modern Go practices such as Go modules and a focus on performance.

  • Query Types: Supports both UDP and TCP queries for IPv4 and IPv6 addresses.
  • DNSSEC: Implements DNSSEC signing, validating, and key generation for various algorithms (DSA, RSA, ECDSA, Ed25519).
  • Record Types: Supports all DNS record types as defined in RFCs, including advanced options like EDNS0, TSIG, and various expanded records.
  • Performance: Designed for high performance with optimizations for fast DNS resolution and query processing.
  • Extensibility: Offers flexibility for extending functionality through custom record types and additional features.

The project has been under active development since 2010 and has a large number of stars and forks, indicating a significant community interest. Recent commits and active issue management suggest ongoing maintenance and support. Comprehensive documentation is available, and the code quality is generally high, confirming a reliable and well-established library.

This DNS library is valuable for developers needing a robust and performant DNS solution in Go. It simplifies building DNS-aware applications, servers, and tools with comprehensive features and adherence to standards. It’s particularly useful for projects requiring DNSSEC validation, advanced DNS options, and fine-grained control over DNS queries.

Languages:
Summarize:
Share:
Stars
8,722
Forks
1,198
Issues
1
Created
16 years ago
Commit
2 months ago
License
BSD-3-CLAUSE
Archived
No
Updated 27 days ago

Similar Repositories