• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

.github/workflows/H14-Oct-2020-

dnsutil/H14-Oct-2020-

.codecov.ymlH A D14-Oct-2020128

.gitignoreH A D14-Oct-202024

.travis.ymlH A D14-Oct-2020303

AUTHORSH A D14-Oct-202027

CODEOWNERSH A D14-Oct-202018

CONTRIBUTORSH A D14-Oct-2020150

COPYRIGHTH A D14-Oct-2020512

LICENSEH A D14-Oct-20201.6 KiB

Makefile.fuzzH A D14-Oct-2020671

Makefile.releaseH A D14-Oct-2020992

README.mdH A D14-Oct-20205.5 KiB

acceptfunc.goH A D14-Oct-20201.8 KiB

acceptfunc_test.goH A D14-Oct-2020856

client.goH A D14-Oct-202013.1 KiB

client_test.goH A D14-Oct-202014.5 KiB

clientconfig.goH A D14-Oct-20203.3 KiB

clientconfig_test.goH A D14-Oct-20204.6 KiB

dane.goH A D14-Oct-2020997

defaults.goH A D14-Oct-202010.4 KiB

dns.goH A D14-Oct-20203.7 KiB

dns_bench_test.goH A D14-Oct-20209.4 KiB

dns_test.goH A D14-Oct-20209.9 KiB

dnssec.goH A D14-Oct-202019.3 KiB

dnssec_keygen.goH A D14-Oct-20203.1 KiB

dnssec_keyscan.goH A D14-Oct-20206.4 KiB

dnssec_privkey.goH A D14-Oct-20202.9 KiB

dnssec_test.goH A D14-Oct-202028.6 KiB

doc.goH A D14-Oct-20209.7 KiB

duplicate.goH A D14-Oct-2020953

duplicate_generate.goH A D14-Oct-20203.9 KiB

duplicate_test.goH A D14-Oct-20203.8 KiB

dyn_test.goH A D14-Oct-202037

edns.goH A D14-Oct-202019.7 KiB

edns_test.goH A D14-Oct-20203.1 KiB

example_test.goH A D14-Oct-20203.1 KiB

format.goH A D14-Oct-20202.4 KiB

format_test.goH A D14-Oct-2020279

fuzz.goH A D14-Oct-2020536

fuzz_test.goH A D14-Oct-20207.5 KiB

generate.goH A D14-Oct-20205 KiB

generate_test.goH A D14-Oct-20206.9 KiB

go.modH A D14-Oct-2020333

go.sumH A D14-Oct-20204 KiB

issue_test.goH A D14-Oct-20201.5 KiB

labels.goH A D14-Oct-20204.1 KiB

labels_test.goH A D14-Oct-20207.9 KiB

leak_test.goH A D14-Oct-20201.8 KiB

length_test.goH A D14-Oct-202019.9 KiB

listen_go111.goH A D14-Oct-2020881

listen_go_not111.goH A D14-Oct-2020485

msg.goH A D14-Oct-202031.8 KiB

msg_generate.goH A D14-Oct-202010.2 KiB

msg_helpers.goH A D14-Oct-202021.5 KiB

msg_helpers_test.goH A D14-Oct-202011.9 KiB

msg_test.goH A D14-Oct-20209.1 KiB

msg_truncate.goH A D14-Oct-20203.1 KiB

msg_truncate_test.goH A D14-Oct-20205 KiB

nsecx.goH A D14-Oct-20202.4 KiB

nsecx_test.goH A D14-Oct-20204.8 KiB

parse_test.goH A D14-Oct-202061.7 KiB

privaterr.goH A D14-Oct-20203.2 KiB

privaterr_test.goH A D14-Oct-20203.5 KiB

remote_test.goH A D14-Oct-2020385

reverse.goH A D14-Oct-20201.3 KiB

rr_test.goH A D14-Oct-2020191

sanitize.goH A D14-Oct-20202 KiB

sanitize_test.goH A D14-Oct-20202 KiB

scan.goH A D14-Oct-202028.9 KiB

scan_rr.goH A D14-Oct-202039.9 KiB

scan_test.goH A D14-Oct-20207.4 KiB

serve_mux.goH A D14-Oct-20203.4 KiB

serve_mux_test.goH A D14-Oct-20201.6 KiB

server.goH A D14-Oct-202019.6 KiB

server_test.goH A D14-Oct-202029.5 KiB

sig0.goH A D14-Oct-20204.9 KiB

sig0_test.goH A D14-Oct-20202.2 KiB

singleinflight.goH A D14-Oct-20201.6 KiB

smimea.goH A D14-Oct-20201.3 KiB

svcb.goH A D14-Oct-202020.2 KiB

svcb_test.goH A D14-Oct-20202.5 KiB

tlsa.goH A D14-Oct-20201.1 KiB

tsig.goH A D14-Oct-202010.3 KiB

tsig_test.goH A D14-Oct-20208.1 KiB

types.goH A D14-Oct-202035.5 KiB

types_generate.goH A D14-Oct-20208.6 KiB

types_test.goH A D14-Oct-20204.3 KiB

udp.goH A D14-Oct-20202.9 KiB

udp_test.goH A D14-Oct-20204.4 KiB

udp_windows.goH A D14-Oct-20201.2 KiB

update.goH A D14-Oct-20203.1 KiB

update_test.goH A D14-Oct-20204.3 KiB

version.goH A D14-Oct-2020275

version_test.goH A D14-Oct-2020180

xfr.goH A D14-Oct-20206.6 KiB

xfr_test.goH A D14-Oct-20203.5 KiB

zduplicate.goH A D14-Oct-202019.9 KiB

zmsg.goH A D14-Oct-202058.7 KiB

ztypes.goH A D14-Oct-202029.1 KiB

README.md

1[![Build Status](https://travis-ci.org/miekg/dns.svg?branch=master)](https://travis-ci.org/miekg/dns)
2[![Code Coverage](https://img.shields.io/codecov/c/github/miekg/dns/master.svg)](https://codecov.io/github/miekg/dns?branch=master)
3[![Go Report Card](https://goreportcard.com/badge/github.com/miekg/dns)](https://goreportcard.com/report/miekg/dns)
4[![](https://godoc.org/github.com/miekg/dns?status.svg)](https://godoc.org/github.com/miekg/dns)
5
6# Alternative (more granular) approach to a DNS library
7
8> Less is more.
9
10Complete and usable DNS library. All Resource Records are supported, including the DNSSEC types.
11It follows a lean and mean philosophy. If there is stuff you should know as a DNS programmer there
12isn't a convenience function for it. Server side and client side programming is supported, i.e. you
13can build servers and resolvers with it.
14
15We try to keep the "master" branch as sane as possible and at the bleeding edge of standards,
16avoiding breaking changes wherever reasonable. We support the last two versions of Go.
17
18# Goals
19
20* KISS;
21* Fast;
22* Small API. If it's easy to code in Go, don't make a function for it.
23
24# Users
25
26A not-so-up-to-date-list-that-may-be-actually-current:
27
28* https://github.com/coredns/coredns
29* https://github.com/abh/geodns
30* https://github.com/baidu/bfe
31* http://www.statdns.com/
32* http://www.dnsinspect.com/
33* https://github.com/chuangbo/jianbing-dictionary-dns
34* http://www.dns-lg.com/
35* https://github.com/fcambus/rrda
36* https://github.com/kenshinx/godns
37* https://github.com/skynetservices/skydns
38* https://github.com/hashicorp/consul
39* https://github.com/DevelopersPL/godnsagent
40* https://github.com/duedil-ltd/discodns
41* https://github.com/StalkR/dns-reverse-proxy
42* https://github.com/tianon/rawdns
43* https://mesosphere.github.io/mesos-dns/
44* https://github.com/fcambus/statzone
45* https://github.com/benschw/dns-clb-go
46* https://github.com/corny/dnscheck for <http://public-dns.info/>
47* https://github.com/miekg/unbound
48* https://github.com/miekg/exdns
49* https://dnslookup.org
50* https://github.com/looterz/grimd
51* https://github.com/phamhongviet/serf-dns
52* https://github.com/mehrdadrad/mylg
53* https://github.com/bamarni/dockness
54* https://github.com/fffaraz/microdns
55* https://github.com/ipdcode/hades <https://jd.com>
56* https://github.com/StackExchange/dnscontrol/
57* https://www.dnsperf.com/
58* https://dnssectest.net/
59* https://github.com/oif/apex
60* https://github.com/jedisct1/dnscrypt-proxy
61* https://github.com/jedisct1/rpdns
62* https://github.com/xor-gate/sshfp
63* https://github.com/rs/dnstrace
64* https://blitiri.com.ar/p/dnss ([github mirror](https://github.com/albertito/dnss))
65* https://render.com
66* https://github.com/peterzen/goresolver
67* https://github.com/folbricht/routedns
68* https://domainr.com/
69* https://zonedb.org/
70* https://router7.org/
71
72Send pull request if you want to be listed here.
73
74# Features
75
76* UDP/TCP queries, IPv4 and IPv6
77* RFC 1035 zone file parsing ($INCLUDE, $ORIGIN, $TTL and $GENERATE (for all record types) are supported
78* Fast
79* Server side programming (mimicking the net/http package)
80* Client side programming
81* DNSSEC: signing, validating and key generation for DSA, RSA, ECDSA and Ed25519
82* EDNS0, NSID, Cookies
83* AXFR/IXFR
84* TSIG, SIG(0)
85* DNS over TLS (DoT): encrypted connection between client and server over TCP
86* DNS name compression
87
88Have fun!
89
90Miek Gieben  -  2010-2012  -  <miek@miek.nl>
91DNS Authors 2012-
92
93# Building
94
95This library uses Go modules and uses semantic versioning. Building is done with the `go` tool, so
96the following should work:
97
98    go get github.com/miekg/dns
99    go build github.com/miekg/dns
100
101## Examples
102
103A short "how to use the API" is at the beginning of doc.go (this also will show when you call `godoc
104github.com/miekg/dns`).
105
106Example programs can be found in the `github.com/miekg/exdns` repository.
107
108## Supported RFCs
109
110*all of them*
111
112* 103{4,5} - DNS standard
113* 1348 - NSAP record (removed the record)
114* 1982 - Serial Arithmetic
115* 1876 - LOC record
116* 1995 - IXFR
117* 1996 - DNS notify
118* 2136 - DNS Update (dynamic updates)
119* 2181 - RRset definition - there is no RRset type though, just []RR
120* 2537 - RSAMD5 DNS keys
121* 2065 - DNSSEC (updated in later RFCs)
122* 2671 - EDNS record
123* 2782 - SRV record
124* 2845 - TSIG record
125* 2915 - NAPTR record
126* 2929 - DNS IANA Considerations
127* 3110 - RSASHA1 DNS keys
128* 3123 - APL record
129* 3225 - DO bit (DNSSEC OK)
130* 340{1,2,3} - NAPTR record
131* 3445 - Limiting the scope of (DNS)KEY
132* 3597 - Unknown RRs
133* 403{3,4,5} - DNSSEC + validation functions
134* 4255 - SSHFP record
135* 4343 - Case insensitivity
136* 4408 - SPF record
137* 4509 - SHA256 Hash in DS
138* 4592 - Wildcards in the DNS
139* 4635 - HMAC SHA TSIG
140* 4701 - DHCID
141* 4892 - id.server
142* 5001 - NSID
143* 5155 - NSEC3 record
144* 5205 - HIP record
145* 5702 - SHA2 in the DNS
146* 5936 - AXFR
147* 5966 - TCP implementation recommendations
148* 6605 - ECDSA
149* 6725 - IANA Registry Update
150* 6742 - ILNP DNS
151* 6840 - Clarifications and Implementation Notes for DNS Security
152* 6844 - CAA record
153* 6891 - EDNS0 update
154* 6895 - DNS IANA considerations
155* 6944 - DNSSEC DNSKEY Algorithm Status
156* 6975 - Algorithm Understanding in DNSSEC
157* 7043 - EUI48/EUI64 records
158* 7314 - DNS (EDNS) EXPIRE Option
159* 7477 - CSYNC RR
160* 7828 - edns-tcp-keepalive EDNS0 Option
161* 7553 - URI record
162* 7858 - DNS over TLS: Initiation and Performance Considerations
163* 7871 - EDNS0 Client Subnet
164* 7873 - Domain Name System (DNS) Cookies
165* 8080 - EdDSA for DNSSEC
166* 8499 - DNS Terminology
167
168## Loosely Based Upon
169
170* ldns - <https://nlnetlabs.nl/projects/ldns/about/>
171* NSD - <https://nlnetlabs.nl/projects/nsd/about/>
172* Net::DNS - <http://www.net-dns.org/>
173* GRONG - <https://github.com/bortzmeyer/grong>
174