Files
go-dns/CONTEXT.md
T
konrad 8d090864af Record the setup-change closeout and the module glossary.
The change notes finish the documentation pass, and CONTEXT.md points at the project specification.
2026-09-30 17:29:11 +02:00

1.3 KiB
Raw Blame History

go-dns

Go library for dynamic DNS updates (RFC 2136 / nsupdate-style).

Canonical spec: docs/project-specification.md — follow it for design and implementation.

Stack

  • Language: Go (see workspace go.work for version)
  • Module: gitea.neitzel.de/konrad/go-dns
  • Package: godns (module root)
  • Type: Importable Go library (not a standalone service)

Design (summary)

  • Target BIND and RFC 2136–compatible authoritative nameservers
  • Dynamic update (RFC 2136) and full zone transfer (AXFR) over DNS
  • TSIG authentication with caller-supplied keys (no key generation in library)
  • Typed RR builders per record type (not generic rdata strings)
  • Domain names: ASCII only in v1
  • UPDATE: automatic TCP fallback on UDP truncation
  • Typed zone data structures (Record, Zone, etc.) for transfer/update results
  • BIND guide: docs/bind-tsig-configuration.md
  • Project docs override workspace defaults for this module

Tests

  • Unit: go test ./...
  • Integration: go test -tags=integration ./... — BIND testcontainer (Docker required)

Work tracking

Local markdown issues: ../.scratch/ — see docs/agents/issue-tracker.md.