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

..02-Oct-2019-

.codecov.ymlH A D02-Oct-2019128 98

.gitignoreH A D02-Oct-201924 54

.travis.ymlH A D02-Oct-2019382 1914

AUTHORSH A D02-Oct-201927 21

CONTRIBUTORSH A D02-Oct-2019150 1110

COPYRIGHTH A D02-Oct-2019512 107

Gopkg.lockH A D02-Oct-20191.4 KiB5851

Gopkg.tomlH A D02-Oct-2019795 3932

LICENSEH A D02-Oct-20191.6 KiB3326

Makefile.fuzzH A D02-Oct-2019671 3417

Makefile.releaseH A D02-Oct-2019992 5331

README.mdH A D02-Oct-20195.5 KiB173147

client.goH A D02-Oct-201915.6 KiB578427

clientconfig.goH A D02-Oct-20193.4 KiB140109

compress_generate.goH A D02-Oct-20195.3 KiB199155

dane.goH A D02-Oct-2019997 4440

defaults.goH A D02-Oct-20198.3 KiB289197

dns.goH A D02-Oct-20192.3 KiB9865

dnssec.goH A D02-Oct-201919.6 KiB802637

dnssec_keygen.goH A D02-Oct-20194.2 KiB179151

dnssec_keyscan.goH A D02-Oct-20196.9 KiB353282

dnssec_privkey.goH A D02-Oct-20192.9 KiB9476

doc.goH A D02-Oct-20199.8 KiB2731

duplicate.goH A D02-Oct-2019741 2614

duplicate_generate.goH A D02-Oct-20193.8 KiB159116

edns.goH A D02-Oct-201918.4 KiB631446

format.goH A D02-Oct-20192.3 KiB8877

fuzz.goH A D02-Oct-2019307 2417

generate.goH A D02-Oct-20194.7 KiB243178

labels.goH A D02-Oct-20194 KiB192140

listen_go111.goH A D02-Oct-2019881 4532

listen_go_not111.goH A D02-Oct-2019485 2413

msg.goH A D02-Oct-201931.2 KiB1,182925

msg_generate.goH A D02-Oct-201910.1 KiB349301

msg_helpers.goH A D02-Oct-201916.5 KiB634550

nsecx.goH A D02-Oct-20192.5 KiB10793

privaterr.goH A D02-Oct-20194 KiB148106

rawmsg.goH A D02-Oct-20191.1 KiB5036

reverse.goH A D02-Oct-2019897 3926

sanitize.goH A D02-Oct-20192 KiB8659

scan.goH A D02-Oct-201928.5 KiB1,332934

scan_rr.goH A D02-Oct-201950.5 KiB2,2101,891

serve_mux.goH A D02-Oct-20193.8 KiB14889

server.goH A D02-Oct-201920.4 KiB830608

sig0.goH A D02-Oct-20194.9 KiB218186

singleinflight.goH A D02-Oct-20191.4 KiB5836

smimea.goH A D02-Oct-20191.4 KiB4832

tlsa.goH A D02-Oct-20191.1 KiB4837

tsig.goH A D02-Oct-20199.3 KiB387313

types.goH A D02-Oct-201931.5 KiB1,3841,123

types_generate.goH A D02-Oct-20196.9 KiB273215

udp.goH A D02-Oct-20192.9 KiB10367

udp_windows.goH A D02-Oct-20191.2 KiB3820

update.goH A D02-Oct-20193.1 KiB10783

version.goH A D02-Oct-2019275 169

xfr.goH A D02-Oct-20196.4 KiB261207

zcompress.goH A D02-Oct-20195 KiB153148

zduplicate.goH A D02-Oct-201917.3 KiB944875

zmsg.goH A D02-Oct-201976.1 KiB3,6163,396

ztypes.goH A D02-Oct-201922.9 KiB864851

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 widely used Resource Records are supported, including the
11DNSSEC types. It follows a lean and mean philosophy. If there is stuff you should know as a DNS
12programmer there isn't a convenience function for it. Server side and client side programming is
13supported, i.e. you can 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://play.google.com/store/apps/details?id=com.turbobytes.dig
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 (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
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    * Reply speed around ~ 80K qps (faster hardware results in more qps);
80    * Parsing RRs ~ 100K RR/s, that's 5M records in about 50 seconds;
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: optional encrypted connection between client and server;
88* DNS name compression;
89* Depends only on the standard library.
90
91Have fun!
92
93Miek Gieben  -  2010-2012  -  <miek@miek.nl>
94
95# Building
96
97Building is done with the `go` tool. If you have setup your GOPATH correctly, the following should
98work:
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
106when you call `godoc github.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* 3225 - DO bit (DNSSEC OK)
131* 340{1,2,3} - NAPTR record
132* 3445 - Limiting the scope of (DNS)KEY
133* 3597 - Unknown RRs
134* 403{3,4,5} - DNSSEC + validation functions
135* 4255 - SSHFP record
136* 4343 - Case insensitivity
137* 4408 - SPF record
138* 4509 - SHA256 Hash in DS
139* 4592 - Wildcards in the DNS
140* 4635 - HMAC SHA TSIG
141* 4701 - DHCID
142* 4892 - id.server
143* 5001 - NSID
144* 5155 - NSEC3 record
145* 5205 - HIP record
146* 5702 - SHA2 in the DNS
147* 5936 - AXFR
148* 5966 - TCP implementation recommendations
149* 6605 - ECDSA
150* 6725 - IANA Registry Update
151* 6742 - ILNP DNS
152* 6840 - Clarifications and Implementation Notes for DNS Security
153* 6844 - CAA record
154* 6891 - EDNS0 update
155* 6895 - DNS IANA considerations
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 (draft-ietf-dnsop-cookies)
165* 8080 - EdDSA for DNSSEC
166
167## Loosely based upon
168
169* `ldns`
170* `NSD`
171* `Net::DNS`
172* `GRONG`
173