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

..03-May-2022-

dnsutil/H03-Jan-2020-215157

.codecov.ymlH A D03-Jan-2020128 98

.gitignoreH A D03-Jan-202024 54

.travis.ymlH A D03-Jan-2020307 1813

AUTHORSH A D03-Jan-202027 21

CODEOWNERSH A D03-Jan-202018 21

CONTRIBUTORSH A D03-Jan-2020150 1110

COPYRIGHTH A D03-Jan-2020512 107

LICENSEH A D03-Jan-20201.6 KiB3126

Makefile.fuzzH A D03-Jan-2020671 3417

Makefile.releaseH A D03-Jan-2020992 5331

README.mdH A D03-Jan-20205.6 KiB176150

acceptfunc.goH A D03-Jan-20201.8 KiB6232

acceptfunc_test.goH A D03-Jan-2020856 3629

client.goH A D03-Jan-202012.4 KiB416293

client_test.goH A D03-Jan-202013.9 KiB568455

clientconfig.goH A D03-Jan-20203.3 KiB136105

clientconfig_test.goH A D03-Jan-20204.6 KiB182160

dane.goH A D03-Jan-2020997 4440

defaults.goH A D03-Jan-202010.1 KiB379258

dns.goH A D03-Jan-20203.7 KiB13578

dns_bench_test.goH A D03-Jan-20209.4 KiB371337

dns_test.goH A D03-Jan-20209.9 KiB317268

dnssec.goH A D03-Jan-202019.4 KiB795633

dnssec_keygen.goH A D03-Jan-20203.1 KiB141118

dnssec_keyscan.goH A D03-Jan-20206.4 KiB323252

dnssec_privkey.goH A D03-Jan-20202.9 KiB9576

dnssec_test.goH A D03-Jan-202028.6 KiB859748

doc.goH A D03-Jan-20209.7 KiB2691

duplicate.goH A D03-Jan-2020955 3924

duplicate_generate.goH A D03-Jan-20203.8 KiB166122

duplicate_test.goH A D03-Jan-20202.6 KiB8567

dyn_test.goH A D03-Jan-202037 41

edns.goH A D03-Jan-202019.7 KiB676484

edns_test.goH A D03-Jan-20203.1 KiB136103

example_test.goH A D03-Jan-20203.1 KiB147115

format.goH A D03-Jan-20202.4 KiB9483

format_test.goH A D03-Jan-2020279 1714

fuzz.goH A D03-Jan-2020536 3322

fuzz_test.goH A D03-Jan-20207.5 KiB270234

generate.goH A D03-Jan-20204.9 KiB248182

generate_test.goH A D03-Jan-20206.9 KiB235209

go.modH A D03-Jan-2020333 129

go.sumH A D03-Jan-20204 KiB4039

issue_test.goH A D03-Jan-20201.5 KiB6355

labels.goH A D03-Jan-20204.1 KiB213154

labels_test.goH A D03-Jan-20207.5 KiB321294

leak_test.goH A D03-Jan-20201.8 KiB7261

length_test.goH A D03-Jan-202019.9 KiB509432

listen_go111.goH A D03-Jan-2020881 4532

listen_go_not111.goH A D03-Jan-2020485 2413

msg.goH A D03-Jan-202031.9 KiB1,197897

msg_generate.goH A D03-Jan-202010 KiB344295

msg_helpers.goH A D03-Jan-202020.9 KiB811706

msg_helpers_test.goH A D03-Jan-202010.6 KiB466440

msg_test.goH A D03-Jan-20209.1 KiB326276

msg_truncate.goH A D03-Jan-20203 KiB11259

msg_truncate_test.goH A D03-Jan-20205 KiB188155

nsecx.goH A D03-Jan-20202.4 KiB9678

nsecx_test.goH A D03-Jan-20204.8 KiB171160

parse_test.goH A D03-Jan-202055.3 KiB1,7211,579

privaterr.goH A D03-Jan-20203.3 KiB11575

privaterr_test.goH A D03-Jan-20203.5 KiB167134

remote_test.goH A D03-Jan-2020385 2015

reverse.goH A D03-Jan-20201.3 KiB5332

rr_test.goH A D03-Jan-2020191 128

sanitize.goH A D03-Jan-20202 KiB8760

sanitize_test.goH A D03-Jan-20202 KiB7670

scan.goH A D03-Jan-202030.3 KiB1,409985

scan_rr.goH A D03-Jan-202039.7 KiB1,7651,546

scan_test.goH A D03-Jan-20207.6 KiB299249

serve_mux.goH A D03-Jan-20203.4 KiB12472

serve_mux_test.goH A D03-Jan-20201.6 KiB7359

server.goH A D03-Jan-202019.4 KiB765550

server_test.goH A D03-Jan-202029.1 KiB1,152944

sig0.goH A D03-Jan-20204.9 KiB210177

sig0_test.goH A D03-Jan-20202.2 KiB9087

singleinflight.goH A D03-Jan-20201.6 KiB6239

smimea.goH A D03-Jan-20201.3 KiB4529

tlsa.goH A D03-Jan-20201.1 KiB4534

tsig.goH A D03-Jan-20209.4 KiB390315

tsig_test.goH A D03-Jan-20201.2 KiB5344

types.goH A D03-Jan-202035 KiB1,5281,236

types_generate.goH A D03-Jan-20208.1 KiB305243

types_test.goH A D03-Jan-20203.3 KiB171138

udp.goH A D03-Jan-20202.9 KiB10367

udp_test.goH A D03-Jan-20204.4 KiB146115

udp_windows.goH A D03-Jan-20201.2 KiB3618

update.goH A D03-Jan-20203.1 KiB11187

update_test.goH A D03-Jan-20204.3 KiB140110

version.goH A D03-Jan-2020275 169

version_test.goH A D03-Jan-2020180 118

xfr.goH A D03-Jan-20206.6 KiB267205

xfr_test.goH A D03-Jan-20203.5 KiB164128

zduplicate.goH A D03-Jan-202017.4 KiB1,1581,087

zmsg.goH A D03-Jan-202057 KiB2,7422,517

ztypes.goH A D03-Jan-202028 KiB899886

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