go-powerdns alternatives and similar packages
Based on the "Networking" category.
Alternatively, view go-powerdns 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 -
gnet
🚀 gnet is a high-performance, lightweight, non-blocking, event-driven networking framework written in pure Go. -
Netmaker
Netmaker makes networks with WireGuard. Netmaker automates fast, secure, and distributed virtual networks. -
mqttPaho
The Paho Go Client provides an MQTT client library for connection to MQTT brokers via TCP, TLS or WebSockets. -
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. -
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. -
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. -
gmqtt
Gmqtt is a flexible, high-performance MQTT broker library that fully implements the MQTT protocol V3.x and V5 in golang -
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. -
peerdiscovery
Pure-Go library for cross-platform local peer discovery using UDP multicast :woman: :repeat: :woman: -
raw
DISCONTINUED. Package raw enables reading and writing data at the device driver level for a network interface. MIT Licensed. -
ethernet
Package ethernet implements marshaling and unmarshaling of IEEE 802.3 Ethernet II frames and IEEE 802.1Q VLAN tags. MIT Licensed.
CodeRabbit: AI Code Reviews for Developers

Do you think we are missing an alternative of go-powerdns or a related project?
README
PowerDNS 4.x API bindings for Golang
This community project provides bindings for the currently latest version of PowerDNS Authoritative Server.
Features
- Zone handling
- Resource record handling
- Server statistics gathering
- DNSSEC handling
For more features, consult our documentation.
Usage
Initialize the handle
import (
"context"
"github.com/joeig/go-powerdns/v3"
)
pdns := powerdns.NewClient("http://localhost:80", "localhost", map[string]string{"X-API-Key": "apipw"}, nil)
Assuming that the server is listening on http://localhost:80 for virtual host localhost
, the API password is apipw
and you want to edit the domain example.com
.
Get/add/change/delete zones
ctx := context.Background()
zones, err := pdns.Zones.List(ctx)
zone, err := pdns.Zones.Get(ctx, "example.com")
export, err := pdns.Zones.Export(ctx, "example.com")
zone, err := pdns.Zones.AddNative(ctx, "example.com", true, "", false, "foo", "foo", true, []string{"ns.foo.tld."})
err := pdns.Zones.Change(ctx, "example.com", &zone)
err := pdns.Zones.Delete(ctx, "example.com")
Add/change/delete resource records
err := pdns.Records.Add(ctx, "example.com", "www.example.com", powerdns.RRTypeAAAA, 60, []string{"::1"})
err := pdns.Records.Change(ctx, "example.com", "www.example.com", powerdns.RRTypeAAAA, 3600, []string{"::1"})
err := pdns.Records.Delete(ctx, "example.com", "www.example.com", powerdns.RRTypeA)
Request server information and statistics
statistics, err := pdns.Statistics.List(ctx)
servers, err := pdns.Servers.List(ctx)
server, err := pdns.Servers.Get(ctx, "localhost")
Handle DNSSEC cryptographic material
cryptokeys, err := pdns.Cryptokeys.List(ctx)
cryptokey, err := pdns.Cryptokeys.Get(ctx, "example.com", "1337")
err := pdns.Cryptokeys.Delete(ctx, "example.com", "1337")
More examples
See examples.
Setup
Requirements
- PowerDNS 4.x ("API v1")
--webserver=yes --api=yes --api-key=apipw --api-readonly=no
- Note that API v1 is actively maintained. There are major differences between 3.x, 4.0 and 4.1 and this client works only with 4.1 to 4.4.
- Tested with Go version 1.16/1.17/1.18, according to Go's version support policy (should work with other minor releases as well)
Install from source
go get -u github.com/joeig/go-powerdns
Documentation
See GoDoc.
Contribution
This API client has not been completed yet, so feel free to contribute. The OpenAPI specification might be a good reference.
Start a PowerDNS authoritative server including a generic MySQL backend, DNSSEC support and some fixtures using Docker compose:
docker-compose -f docker-compose-v4.4.yml up
docker-compose -f docker-compose-v4.4.yml exec powerdns sh init_docker_fixtures.sh
It's also possible to target mocks against this server:
make test-without-mocks