The change notes finish the documentation pass, and CONTEXT.md points at the project specification.
1.3 KiB
1.3 KiB
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.workfor 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.