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

..03-May-2022-

dnsutil/H04-Oct-2019-

.codecov.ymlH A D04-Oct-2019128

.gitignoreH A D04-Oct-201924

.travis.ymlH A D04-Oct-2019235

AUTHORSH A D04-Oct-201927

CONTRIBUTORSH A D04-Oct-2019150

COPYRIGHTH A D04-Oct-2019512

LICENSEH A D04-Oct-20191.6 KiB

Makefile.fuzzH A D04-Oct-2019671

Makefile.releaseH A D04-Oct-2019992

README.mdH A D04-Oct-20195.6 KiB

acceptfunc.goH A D04-Oct-20191.8 KiB

acceptfunc_test.goH A D04-Oct-2019856

client.goH A D04-Oct-201912.4 KiB

client_test.goH A D04-Oct-201913.9 KiB

clientconfig.goH A D04-Oct-20193.3 KiB

clientconfig_test.goH A D04-Oct-20194.6 KiB

dane.goH A D04-Oct-2019997

defaults.goH A D04-Oct-201910.1 KiB

dns.goH A D04-Oct-20193.7 KiB

dns_bench_test.goH A D04-Oct-20199.4 KiB

dns_test.goH A D04-Oct-20199.9 KiB

dnssec.goH A D04-Oct-201919.4 KiB

dnssec_keygen.goH A D04-Oct-20193.1 KiB

dnssec_keyscan.goH A D04-Oct-20196.4 KiB

dnssec_privkey.goH A D04-Oct-20192.9 KiB

dnssec_test.goH A D04-Oct-201928.6 KiB

doc.goH A D04-Oct-20199.7 KiB

duplicate.goH A D04-Oct-2019958

duplicate_generate.goH A D04-Oct-20193.3 KiB

duplicate_test.goH A D04-Oct-20192.6 KiB

dyn_test.goH A D04-Oct-201937

edns.goH A D04-Oct-201919.4 KiB

edns_test.goH A D04-Oct-20192.6 KiB

example_test.goH A D04-Oct-20193.1 KiB

format.goH A D04-Oct-20192.4 KiB

format_test.goH A D04-Oct-2019279

fuzz.goH A D04-Oct-2019307

fuzz_test.goH A D04-Oct-20197.5 KiB

generate.goH A D04-Oct-20194.9 KiB

generate_test.goH A D04-Oct-20196.6 KiB

go.modH A D04-Oct-2019371

go.sumH A D04-Oct-20193.4 KiB

issue_test.goH A D04-Oct-20191.5 KiB

labels.goH A D04-Oct-20193.9 KiB

labels_test.goH A D04-Oct-20195.6 KiB

leak_test.goH A D04-Oct-20191.8 KiB

length_test.goH A D04-Oct-201919.9 KiB

listen_go111.goH A D04-Oct-2019881

listen_go_not111.goH A D04-Oct-2019485

msg.goH A D04-Oct-201932.6 KiB

msg_generate.goH A D04-Oct-20199.6 KiB

msg_helpers.goH A D04-Oct-201917.9 KiB

msg_helpers_test.goH A D04-Oct-20193.7 KiB

msg_test.goH A D04-Oct-20199.1 KiB

msg_truncate.goH A D04-Oct-20193 KiB

msg_truncate_test.goH A D04-Oct-20195 KiB

nsecx.goH A D04-Oct-20192.4 KiB

nsecx_test.goH A D04-Oct-20194.8 KiB

parse_test.goH A D04-Oct-201953 KiB

privaterr.goH A D04-Oct-20193.3 KiB

privaterr_test.goH A D04-Oct-20193.5 KiB

remote_test.goH A D04-Oct-2019385

reverse.goH A D04-Oct-20191.3 KiB

rr_test.goH A D04-Oct-2019191

sanitize.goH A D04-Oct-20192 KiB

sanitize_test.goH A D04-Oct-20192 KiB

scan.goH A D04-Oct-201930.2 KiB

scan_rr.goH A D04-Oct-201938.3 KiB

scan_test.goH A D04-Oct-20197.6 KiB

serve_mux.goH A D04-Oct-20193.4 KiB

serve_mux_test.goH A D04-Oct-20191.6 KiB

server.goH A D04-Oct-201919.4 KiB

server_test.goH A D04-Oct-201929.1 KiB

sig0.goH A D04-Oct-20194.9 KiB

sig0_test.goH A D04-Oct-20192.2 KiB

singleinflight.goH A D04-Oct-20191.6 KiB

smimea.goH A D04-Oct-20191.3 KiB

tlsa.goH A D04-Oct-20191.1 KiB

tsig.goH A D04-Oct-20199.3 KiB

tsig_test.goH A D04-Oct-20191.2 KiB

types.goH A D04-Oct-201933 KiB

types_generate.goH A D04-Oct-20197.5 KiB

types_test.goH A D04-Oct-20193.3 KiB

udp.goH A D04-Oct-20192.9 KiB

udp_test.goH A D04-Oct-20194.4 KiB

udp_windows.goH A D04-Oct-20191.2 KiB

update.goH A D04-Oct-20193.1 KiB

update_test.goH A D04-Oct-20194.3 KiB

version.goH A D04-Oct-2019275

version_test.goH A D04-Oct-2019180

xfr.goH A D04-Oct-20196.5 KiB

xfr_test.goH A D04-Oct-20193.6 KiB

zduplicate.goH A D04-Oct-201917.1 KiB

zmsg.goH A D04-Oct-201956.6 KiB

ztypes.goH A D04-Oct-201927.5 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://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
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 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* 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* 6944 - DNSSEC DNSKEY Algorithm Status
157* 6975 - Algorithm Understanding in DNSSEC
158* 7043 - EUI48/EUI64 records
159* 7314 - DNS (EDNS) EXPIRE Option
160* 7477 - CSYNC RR
161* 7828 - edns-tcp-keepalive EDNS0 Option
162* 7553 - URI record
163* 7858 - DNS over TLS: Initiation and Performance Considerations
164* 7871 - EDNS0 Client Subnet
165* 7873 - Domain Name System (DNS) Cookies
166* 8080 - EdDSA for DNSSEC
167* 8499 - DNS Terminology
168
169## Loosely Based Upon
170
171* ldns - <https://nlnetlabs.nl/projects/ldns/about/>
172* NSD - <https://nlnetlabs.nl/projects/nsd/about/>
173* Net::DNS - <http://www.net-dns.org/>
174* GRONG - <https://github.com/bortzmeyer/grong>
175