kweonminsung
bindizr
Rust

DNS Synchronization Service for BIND9

Last updated Aug 5, 2026
11
Stars
0
Forks
2
Issues
+1
Stars/day
Attention Score
21
Language breakdown
Rust 87.0%
Python 11.9%
Shell 0.8%
Go Template 0.2%
Dockerfile 0.1%
Files click to expand
README

Bindizr

DNS Synchronization Service for BIND9


Documentation  ·  API Reference

Bindizr is a Rust-based DNS control plane that manages zones and records via an HTTP API or CLI, stores data in a database backend (MySQL, PostgreSQL, or SQLite), and propagates changes to BIND9 secondary servers via AXFR/IXFR using DNS Catalog Zones.

 Bindizr control plane and XFR server feeding BIND9 secondaries, which answer client queries

Bindizr owns the zone data and the transfer path; standard BIND9 secondaries discover zones through the catalog zone (RFC 9432) and answer client queries. Adding it in front of BIND9 costs nothing on the query path — Bindizr + BIND9 serves 62,448 QPS against native BIND9's 61,629.

Features

  • Zone and Record Management — full CRUD through the HTTP API or CLI, including bulk inserts, BIND master-file import/export, and dry-run diff previews.
  • Multiple Database Backends — MySQL, PostgreSQL, or SQLite.
  • Zone Transfers (AXFR/IXFR) — automatic SOA serial management and an optional per-serial zone cache.
  • Automatic Zone Provisioning — DNS Catalog Zones (RFC 9432) let secondaries discover created and deleted zones without configuration changes.
  • DNS NOTIFY — configurable retries and timeouts, plus a sync/async apply mode that batches NOTIFYs under load.
  • nsupdate (Dynamic Update) — RFC 2136 dynamic updates with TSIG-signed requests, managed keys, and per-zone update policies.
  • Zone History — per-serial snapshots with diffs between serials and rollback.
  • Observability — health probe, Prometheus metrics at /metrics, and bindizr doctor end-to-end diagnostics.

Quick Start

Pick one. Each is walked through in full on the documentation site.

Kubernetes

The chart can bring its own PostgreSQL for a first look; in production, point it at your database instead.

$ helm install bindizr oci://registry-1.docker.io/kweonminsung/bindizr-chart \
  --version 0.1.0-beta.6 --set postgresql.enabled=true

Docker Swarm

Brings up Bindizr, PostgreSQL, and BIND9 on an overlay network.

$ docker stack deploy -c docker-compose.yml bindizr

Package install

$ sudo dpkg -i bindizr*amd64.deb    # Debian, Ubuntu
$ sudo rpm -i bindizr-*.x86_64.rpm    # Fedora, CentOS, RHEL

The package ships a placeholder database URL, so set yours in /etc/bindizr/bindizr.conf.toml before starting. BIND9 has to be pointed at the catalog zone as well — the manual installation guide covers both.

$ sudo systemctl enable --now bindizr

However you installed it, this checks the whole path end to end:

$ bindizr doctor

API authentication is on by default for Helm and package installs — the Compose stack ships with it off. Create a token before calling the API:

$ bindizr token create

Documentation

Deployment, configuration, the CLI, the HTTP API, and the benchmarks are all at kweonminsung.github.io/bindizr.

Contributing

Bug reports, documentation fixes, and pull requests are welcome — see CONTRIBUTING.md for the development setup, the test and lint commands, and the project conventions a review will check against.

License

This project is licensed under the Apache License 2.0.

🔗 More in this category

© 2026 GitRepoTrend · kweonminsung/bindizr · Updated daily from GitHub