Popularity
9.5
Stable
Activity
7.8
-
7,777
180
1,114

Programming language: Go
License: BSD 3-clause "New" or "Revised" License
Tags: Networking    
Latest version: v1.1.29

dns alternatives and similar packages

Based on the "Networking" category.
Alternatively, view dns alternatives based on common mentions on social networks and blogs.

  • fasthttp

    Fast HTTP package for Go. Tuned for high performance. Zero memory allocations in hot paths. Up to 10x faster than net/http
  • kcptun

    A Stable & Secure Tunnel based on KCP with N:M multiplexing and FEC. Available for ARM, MIPS, 386 and AMD64。N:M 多重化と FEC を備えた KCP に基づく安定した安全なトンネル。 N:M 다중화 및 FEC를 사용하는 KCP 기반의 안정적이고 안전한 터널입니다. Un tunnel stable et sécurisé basé sur KCP avec multiplexage N:M et FEC.
  • Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
    Promo www.influxdata.com
    InfluxDB Logo
  • quic-go

    A QUIC implementation in pure Go
  • gnet

    🚀 gnet is a high-performance, lightweight, non-blocking, event-driven networking framework written in pure Go./ gnet 是一个高性能、轻量级、非阻塞的事件驱动 Go 网络框架。
  • Netmaker

    Netmaker makes networks with WireGuard. Netmaker automates fast, secure, and distributed virtual networks.
  • gopacket

    Provides packet processing capabilities for Go
  • httpstat

    It's like curl -v, with colours.
  • kcp-go

    A Crypto-Secure, Production-Grade Reliable-UDP Library for golang with FEC
  • gobgp

    BGP implemented in the Go Programming Language
  • netpoll

    A high-performance non-blocking I/O networking framework focusing on RPC scenarios.
  • req

    8.8 8.3 dns VS req
    Simple Go HTTP client with Black Magic
  • HTTPLab

    The interactive web server
  • ssh

    8.7 4.2 dns VS ssh
    Easy SSH servers in Golang
  • fortio

    Fortio load testing library, command line tool, advanced echo server and web UI in go (golang). Allows to specify a set query-per-second load and record latency histograms and other useful stats.
  • mqttPaho

    The Paho Go Client provides an MQTT client library for connection to MQTT brokers via TCP, TLS or WebSockets.
  • heimdall

    An enhanced HTTP client for Go
  • go-getter

    Package for downloading things from a string URL using a variety of protocols.
  • water

    A simple TUN/TAP library written in native Go.
  • sftp

    SFTP support for the go.crypto/ssh package
  • mdns

    Simple mDNS client/server library in Golang
  • nbio

    Pure Go 1000k+ connections solution, support tls/http1.x/websocket and basically compatible with net/http, with high-performance and low memory cost, non-blocking, event-driven, easy-to-use.
  • gobetween

    :cloud: Modern & minimalistic load balancer for the Сloud era
  • gev

    8.0 0.0 dns VS gev
    🚀Gev is a lightweight, fast non-blocking TCP network library / websocket server based on Reactor mode. Support custom protocols to quickly and easily build high-performance servers.
  • ftp

    7.9 6.3 dns VS ftp
    FTP client package for Go
  • gosnmp

    An SNMP library written in Go
  • NFF-Go

    NFF-Go -Network Function Framework for GO (former YANFF)
  • grab

    A download manager package for Go
  • gmqtt

    Gmqtt is a flexible, high-performance MQTT broker library that fully implements the MQTT protocol V3.x and V5 in golang
  • requests

    HTTP requests for Gophers
  • cidranger

    Fast IP to CIDR lookup in Golang
  • vssh

    Go Library to Execute Commands Over SSH at Scale
  • lhttp

    go websocket, a better way to buid your IM server
  • bine

    Go library for accessing and embedding Tor clients and servers
  • gotcp

    A Go package for quickly building tcp servers
  • go-stun

    A go implementation of the STUN client (RFC 3489 and RFC 5389)
  • easytcp

    :sparkles: :rocket: EasyTCP is a light-weight TCP framework written in Go (Golang), built with message router. EasyTCP helps you build a TCP server easily fast and less painful.
  • gopcap

    A simple wrapper around libpcap for the Go programming language
  • tcp_server

    DISCONTINUED. golang tcp server
  • gaio

    High performance async-io(proactor) networking for Golang。golangのための高性能非同期io(proactor)ネットワーキング
  • stun

    DISCONTINUED. Fast RFC 5389 STUN implementation in go
  • peerdiscovery

    Pure-Go library for cross-platform local peer discovery using UDP multicast :woman: :repeat: :woman:
  • raw

    6.6 4.7 dns VS raw
    DISCONTINUED. Package raw enables reading and writing data at the device driver level for a network interface. MIT Licensed.
  • winrm

    Command-line tool and library for Windows remote command execution in Go
  • ftpserverlib

    golang ftp server library
  • gNxI

    gNXI Tools - gRPC Network Management/Operations Interface Tools
  • arp

    6.2 0.0 dns VS arp
    Package arp implements the ARP protocol, as described in RFC 826. MIT Licensed.
  • go-cleanhttp

    Get easily stdlib HTTP client, which does not share any state with other clients.
  • dnsmonster

    Passive DNS Capture and Monitoring Toolkit
  • ethernet

    Package ethernet implements marshaling and unmarshaling of IEEE 802.3 Ethernet II frames and IEEE 802.1Q VLAN tags. MIT Licensed.
  • buffstreams

    A library to simplify writing applications using TCP sockets to stream protobuff messages

Do you think we are missing an alternative of dns or a related project?

Add another 'Networking' Package

README

Build Status Code Coverage Go Report Card

Alternative (more granular) approach to a DNS library

Less is more.

Complete and usable DNS library. All Resource Records are supported, including the DNSSEC types. It follows a lean and mean philosophy. If there is stuff you should know as a DNS programmer there isn't a convenience function for it. Server side and client side programming is supported, i.e. you can build servers and resolvers with it.

We try to keep the "master" branch as sane as possible and at the bleeding edge of standards, avoiding breaking changes wherever reasonable. We support the last two versions of Go.

Goals

  • KISS;
  • Fast;
  • Small API. If it's easy to code in Go, don't make a function for it.

Users

A not-so-up-to-date-list-that-may-be-actually-current:

Send pull request if you want to be listed here.

Features

  • UDP/TCP queries, IPv4 and IPv6
  • RFC 1035 zone file parsing ($INCLUDE, $ORIGIN, $TTL and $GENERATE (for all record types) are supported
  • Fast
  • Server side programming (mimicking the net/http package)
  • Client side programming
  • DNSSEC: signing, validating and key generation for DSA, RSA, ECDSA and Ed25519
  • EDNS0, NSID, Cookies
  • AXFR/IXFR
  • TSIG, SIG(0)
  • DNS over TLS (DoT): encrypted connection between client and server over TCP
  • DNS name compression

Have fun!

Miek Gieben - 2010-2012 - [email protected] DNS Authors 2012-

Building

This library uses Go modules and uses semantic versioning. Building is done with the go tool, so the following should work:

go get github.com/miekg/dns
go build github.com/miekg/dns

Examples

A short "how to use the API" is at the beginning of doc.go (this also will show when you call godoc github.com/miekg/dns).

Example programs can be found in the github.com/miekg/exdns repository.

Supported RFCs

all of them

  • 103{4,5} - DNS standard
  • 1348 - NSAP record (removed the record)
  • 1982 - Serial Arithmetic
  • 1876 - LOC record
  • 1995 - IXFR
  • 1996 - DNS notify
  • 2136 - DNS Update (dynamic updates)
  • 2181 - RRset definition - there is no RRset type though, just []RR
  • 2537 - RSAMD5 DNS keys
  • 2065 - DNSSEC (updated in later RFCs)
  • 2671 - EDNS record
  • 2782 - SRV record
  • 2845 - TSIG record
  • 2915 - NAPTR record
  • 2929 - DNS IANA Considerations
  • 3110 - RSASHA1 DNS keys
  • 3123 - APL record
  • 3225 - DO bit (DNSSEC OK)
  • 340{1,2,3} - NAPTR record
  • 3445 - Limiting the scope of (DNS)KEY
  • 3597 - Unknown RRs
  • 403{3,4,5} - DNSSEC + validation functions
  • 4255 - SSHFP record
  • 4343 - Case insensitivity
  • 4408 - SPF record
  • 4509 - SHA256 Hash in DS
  • 4592 - Wildcards in the DNS
  • 4635 - HMAC SHA TSIG
  • 4701 - DHCID
  • 4892 - id.server
  • 5001 - NSID
  • 5155 - NSEC3 record
  • 5205 - HIP record
  • 5702 - SHA2 in the DNS
  • 5936 - AXFR
  • 5966 - TCP implementation recommendations
  • 6605 - ECDSA
  • 6725 - IANA Registry Update
  • 6742 - ILNP DNS
  • 6840 - Clarifications and Implementation Notes for DNS Security
  • 6844 - CAA record
  • 6891 - EDNS0 update
  • 6895 - DNS IANA considerations
  • 6944 - DNSSEC DNSKEY Algorithm Status
  • 6975 - Algorithm Understanding in DNSSEC
  • 7043 - EUI48/EUI64 records
  • 7314 - DNS (EDNS) EXPIRE Option
  • 7477 - CSYNC RR
  • 7828 - edns-tcp-keepalive EDNS0 Option
  • 7553 - URI record
  • 7858 - DNS over TLS: Initiation and Performance Considerations
  • 7871 - EDNS0 Client Subnet
  • 7873 - Domain Name System (DNS) Cookies
  • 8080 - EdDSA for DNSSEC
  • 8499 - DNS Terminology
  • 8659 - DNS Certification Authority Authorization (CAA) Resource Record
  • 8914 - Extended DNS Errors
  • 8976 - Message Digest for DNS Zones (ZONEMD RR)

Loosely Based Upon