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

..11-Nov-2020-

AUTHORSH A D11-Nov-202027 21

CONTRIBUTORSH A D11-Nov-2020137 109

COPYRIGHTH A D11-Nov-2020512 107

LICENSEH A D11-Nov-20201.6 KiB3326

README.mdH A D11-Nov-20204.6 KiB153127

client.goH A D11-Nov-202011.6 KiB456356

clientconfig.goH A D11-Nov-20202.2 KiB10085

defaults.goH A D11-Nov-20208 KiB283192

dns.goH A D11-Nov-20202.5 KiB10574

dnssec.goH A D11-Nov-202017.7 KiB722574

dnssec_keygen.goH A D11-Nov-20203.8 KiB157132

dnssec_keyscan.goH A D11-Nov-20205.4 KiB250219

dnssec_privkey.goH A D11-Nov-20202.7 KiB8670

doc.goH A D11-Nov-20209 KiB2521

edns.goH A D11-Nov-202014.9 KiB533381

format.goH A D11-Nov-20202.3 KiB8877

generate.goH A D11-Nov-20203.8 KiB160135

labels.goH A D11-Nov-20203.6 KiB169121

msg.goH A D11-Nov-202031.4 KiB1,2321,026

msg_generate.goH A D11-Nov-20209.8 KiB341293

msg_helpers.goH A D11-Nov-202016.5 KiB631548

nsecx.goH A D11-Nov-20202.7 KiB12092

privaterr.goH A D11-Nov-20204 KiB150108

rawmsg.goH A D11-Nov-20201.1 KiB5036

reverse.goH A D11-Nov-2020852 3926

sanitize.goH A D11-Nov-20202 KiB8559

scan.goH A D11-Nov-202023.2 KiB982841

scan_rr.goH A D11-Nov-202047.3 KiB2,1441,954

scanner.goH A D11-Nov-2020808 4434

server.goH A D11-Nov-202019.7 KiB733547

sig0.goH A D11-Nov-20204.9 KiB220188

singleinflight.goH A D11-Nov-20201.4 KiB5836

tlsa.goH A D11-Nov-20202.1 KiB8774

tsig.goH A D11-Nov-20209.2 KiB385313

types.goH A D11-Nov-202026.5 KiB1,2501,036

types_generate.goH A D11-Nov-20206.8 KiB272212

udp.goH A D11-Nov-20201.5 KiB5942

udp_linux.goH A D11-Nov-20202.1 KiB7451

udp_other.goH A D11-Nov-2020542 189

udp_plan9.goH A D11-Nov-20201,000 3522

udp_windows.goH A D11-Nov-2020965 3521

update.goH A D11-Nov-20203.1 KiB10783

xfr.goH A D11-Nov-20205.9 KiB245191

zmsg.goH A D11-Nov-202072.9 KiB3,4653,255

ztypes.goH A D11-Nov-202022.7 KiB829814

README.md

1[![Build Status](https://travis-ci.org/miekg/dns.svg?branch=master)](https://travis-ci.org/miekg/dns) [![](https://godoc.org/github.com/miekg/dns?status.svg)](https://godoc.org/github.com/miekg/dns)
2
3# Alternative (more granular) approach to a DNS library
4
5> Less is more.
6
7Complete and usable DNS library. All widely used Resource Records are
8supported, including the DNSSEC types. It follows a lean and mean philosophy.
9If there is stuff you should know as a DNS programmer there isn't a convenience
10function for it. Server side and client side programming is supported, i.e. you
11can build servers and resolvers with it.
12
13We try to keep the "master" branch as sane as possible and at the bleeding edge
14of standards, avoiding breaking changes wherever reasonable. We support the last
15two versions of Go, currently: 1.5 and 1.6.
16
17# Goals
18
19* KISS;
20* Fast;
21* Small API, if its easy to code in Go, don't make a function for it.
22
23# Users
24
25A not-so-up-to-date-list-that-may-be-actually-current:
26
27* https://cloudflare.com
28* https://github.com/abh/geodns
29* http://www.statdns.com/
30* http://www.dnsinspect.com/
31* https://github.com/chuangbo/jianbing-dictionary-dns
32* http://www.dns-lg.com/
33* https://github.com/fcambus/rrda
34* https://github.com/kenshinx/godns
35* https://github.com/skynetservices/skydns
36* https://github.com/hashicorp/consul
37* https://github.com/DevelopersPL/godnsagent
38* https://github.com/duedil-ltd/discodns
39* https://github.com/StalkR/dns-reverse-proxy
40* https://github.com/tianon/rawdns
41* https://mesosphere.github.io/mesos-dns/
42* https://pulse.turbobytes.com/
43* https://play.google.com/store/apps/details?id=com.turbobytes.dig
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://namesmith.io
48* https://github.com/miekg/unbound
49* https://github.com/miekg/exdns
50* https://dnslookup.org
51* https://github.com/looterz/grimd
52* https://github.com/phamhongviet/serf-dns
53* https://github.com/mehrdadrad/mylg
54
55Send pull request if you want to be listed here.
56
57# Features
58
59* UDP/TCP queries, IPv4 and IPv6;
60* RFC 1035 zone file parsing ($INCLUDE, $ORIGIN, $TTL and $GENERATE (for all record types) are supported;
61* Fast:
62    * Reply speed around ~ 80K qps (faster hardware results in more qps);
63    * Parsing RRs ~ 100K RR/s, that's 5M records in about 50 seconds;
64* Server side programming (mimicking the net/http package);
65* Client side programming;
66* DNSSEC: signing, validating and key generation for DSA, RSA and ECDSA;
67* EDNS0, NSID, Cookies;
68* AXFR/IXFR;
69* TSIG, SIG(0);
70* DNS over TLS: optional encrypted connection between client and server;
71* DNS name compression;
72* Depends only on the standard library.
73
74Have fun!
75
76Miek Gieben  -  2010-2012  -  <miek@miek.nl>
77
78# Building
79
80Building is done with the `go` tool. If you have setup your GOPATH
81correctly, the following should work:
82
83    go get github.com/miekg/dns
84    go build github.com/miekg/dns
85
86## Examples
87
88A short "how to use the API" is at the beginning of doc.go (this also will show
89when you call `godoc github.com/miekg/dns`).
90
91Example programs can be found in the `github.com/miekg/exdns` repository.
92
93## Supported RFCs
94
95*all of them*
96
97* 103{4,5} - DNS standard
98* 1348 - NSAP record (removed the record)
99* 1982 - Serial Arithmetic
100* 1876 - LOC record
101* 1995 - IXFR
102* 1996 - DNS notify
103* 2136 - DNS Update (dynamic updates)
104* 2181 - RRset definition - there is no RRset type though, just []RR
105* 2537 - RSAMD5 DNS keys
106* 2065 - DNSSEC (updated in later RFCs)
107* 2671 - EDNS record
108* 2782 - SRV record
109* 2845 - TSIG record
110* 2915 - NAPTR record
111* 2929 - DNS IANA Considerations
112* 3110 - RSASHA1 DNS keys
113* 3225 - DO bit (DNSSEC OK)
114* 340{1,2,3} - NAPTR record
115* 3445 - Limiting the scope of (DNS)KEY
116* 3597 - Unknown RRs
117* 403{3,4,5} - DNSSEC + validation functions
118* 4255 - SSHFP record
119* 4343 - Case insensitivity
120* 4408 - SPF record
121* 4509 - SHA256 Hash in DS
122* 4592 - Wildcards in the DNS
123* 4635 - HMAC SHA TSIG
124* 4701 - DHCID
125* 4892 - id.server
126* 5001 - NSID
127* 5155 - NSEC3 record
128* 5205 - HIP record
129* 5702 - SHA2 in the DNS
130* 5936 - AXFR
131* 5966 - TCP implementation recommendations
132* 6605 - ECDSA
133* 6725 - IANA Registry Update
134* 6742 - ILNP DNS
135* 6840 - Clarifications and Implementation Notes for DNS Security
136* 6844 - CAA record
137* 6891 - EDNS0 update
138* 6895 - DNS IANA considerations
139* 6975 - Algorithm Understanding in DNSSEC
140* 7043 - EUI48/EUI64 records
141* 7314 - DNS (EDNS) EXPIRE Option
142* 7553 - URI record
143* 7858 - DNS over TLS: Initiation and Performance Considerations (draft)
144* 7873 - Domain Name System (DNS) Cookies (draft-ietf-dnsop-cookies)
145* xxxx - EDNS0 DNS Update Lease (draft)
146
147## Loosely based upon
148
149* `ldns`
150* `NSD`
151* `Net::DNS`
152* `GRONG`
153