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

..03-May-2022-

.github/workflows/H01-Aug-2020-11291

dnsutil/H01-Aug-2020-215157

.codecov.ymlH A D01-Aug-2020128 98

.gitignoreH A D01-Aug-202024 54

.travis.ymlH A D01-Aug-2020307 1813

AUTHORSH A D01-Aug-202027 21

CODEOWNERSH A D01-Aug-202018 21

CONTRIBUTORSH A D01-Aug-2020150 1110

COPYRIGHTH A D01-Aug-2020512 107

LICENSEH A D01-Aug-20201.6 KiB3126

Makefile.fuzzH A D01-Aug-2020671 3417

Makefile.releaseH A D01-Aug-2020992 5331

README.mdH A D01-Aug-20205.7 KiB179153

acceptfunc.goH A D01-Aug-20201.8 KiB6232

acceptfunc_test.goH A D01-Aug-2020856 3629

client.goH A D01-Aug-202013 KiB431295

client_test.goH A D01-Aug-202014.5 KiB599481

clientconfig.goH A D01-Aug-20203.3 KiB136105

clientconfig_test.goH A D01-Aug-20204.6 KiB182160

dane.goH A D01-Aug-2020997 4440

defaults.goH A D01-Aug-202010.4 KiB385261

dns.goH A D01-Aug-20203.7 KiB13578

dns_bench_test.goH A D01-Aug-20209.4 KiB371337

dns_test.goH A D01-Aug-20209.9 KiB317268

dnssec.goH A D01-Aug-202019.3 KiB795633

dnssec_keygen.goH A D01-Aug-20203.1 KiB141118

dnssec_keyscan.goH A D01-Aug-20206.4 KiB323252

dnssec_privkey.goH A D01-Aug-20202.9 KiB9576

dnssec_test.goH A D01-Aug-202028.6 KiB859748

doc.goH A D01-Aug-20209.7 KiB2691

duplicate.goH A D01-Aug-2020953 3824

duplicate_generate.goH A D01-Aug-20203.8 KiB163119

duplicate_test.goH A D01-Aug-20202.6 KiB8567

dyn_test.goH A D01-Aug-202037 41

edns.goH A D01-Aug-202019.7 KiB676484

edns_test.goH A D01-Aug-20203.1 KiB136103

example_test.goH A D01-Aug-20203.1 KiB147115

format.goH A D01-Aug-20202.4 KiB9483

format_test.goH A D01-Aug-2020279 1714

fuzz.goH A D01-Aug-2020536 3322

fuzz_test.goH A D01-Aug-20207.5 KiB270234

generate.goH A D01-Aug-20205 KiB248182

generate_test.goH A D01-Aug-20206.9 KiB236207

go.modH A D01-Aug-2020333 129

go.sumH A D01-Aug-20204 KiB4039

issue_test.goH A D01-Aug-20201.5 KiB6355

labels.goH A D01-Aug-20204.1 KiB213154

labels_test.goH A D01-Aug-20207.9 KiB337309

leak_test.goH A D01-Aug-20201.8 KiB7261

length_test.goH A D01-Aug-202019.9 KiB509432

listen_go111.goH A D01-Aug-2020881 4532

listen_go_not111.goH A D01-Aug-2020485 2413

msg.goH A D01-Aug-202031.8 KiB1,191891

msg_generate.goH A D01-Aug-202010 KiB344295

msg_helpers.goH A D01-Aug-202019.7 KiB767662

msg_helpers_test.goH A D01-Aug-202011.4 KiB506480

msg_test.goH A D01-Aug-20209.1 KiB327277

msg_truncate.goH A D01-Aug-20203 KiB11259

msg_truncate_test.goH A D01-Aug-20205 KiB188155

nsecx.goH A D01-Aug-20202.4 KiB9678

nsecx_test.goH A D01-Aug-20204.8 KiB171160

parse_test.goH A D01-Aug-202055.9 KiB1,7361,593

privaterr.goH A D01-Aug-20203.2 KiB11475

privaterr_test.goH A D01-Aug-20203.5 KiB169135

remote_test.goH A D01-Aug-2020385 2015

reverse.goH A D01-Aug-20201.3 KiB5332

rr_test.goH A D01-Aug-2020191 128

sanitize.goH A D01-Aug-20202 KiB8760

sanitize_test.goH A D01-Aug-20202 KiB7670

scan.goH A D01-Aug-202028 KiB1,332960

scan_rr.goH A D01-Aug-202039.9 KiB1,7441,533

scan_test.goH A D01-Aug-20207.4 KiB291239

serve_mux.goH A D01-Aug-20203.4 KiB12371

serve_mux_test.goH A D01-Aug-20201.6 KiB7359

server.goH A D01-Aug-202019.4 KiB765550

server_test.goH A D01-Aug-202029.5 KiB1,167956

sig0.goH A D01-Aug-20204.9 KiB210177

sig0_test.goH A D01-Aug-20202.2 KiB9087

singleinflight.goH A D01-Aug-20201.6 KiB6239

smimea.goH A D01-Aug-20201.3 KiB4529

tlsa.goH A D01-Aug-20201.1 KiB4534

tsig.goH A D01-Aug-202010.3 KiB418338

tsig_test.goH A D01-Aug-20208.1 KiB240196

types.goH A D01-Aug-202035.4 KiB1,5321,197

types_generate.goH A D01-Aug-20208.3 KiB310248

types_test.goH A D01-Aug-20204.3 KiB194157

udp.goH A D01-Aug-20202.9 KiB10367

udp_test.goH A D01-Aug-20204.4 KiB146115

udp_windows.goH A D01-Aug-20201.2 KiB3618

update.goH A D01-Aug-20203.1 KiB11187

update_test.goH A D01-Aug-20204.3 KiB140110

version.goH A D01-Aug-2020275 169

version_test.goH A D01-Aug-2020180 118

xfr.goH A D01-Aug-20206.6 KiB267205

xfr_test.goH A D01-Aug-20203.5 KiB164128

zduplicate.goH A D01-Aug-202019.2 KiB1,2781,202

zmsg.goH A D01-Aug-202057 KiB2,7422,517

ztypes.goH A D01-Aug-202028.3 KiB914901

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