Expand description
§Zone Update
A minimal Rust library providing CRUD-like operations on DNS records with various DNS providers.
§Overview
Zone Update is a lightweight library that provides a simple interface for
programmatically managing DNS zone records through provider APIs.
The library is both blocking and async, and supports both smol and tokio.
§Supported DNS providers
Currently, Zone Update supports the following DNS providers:
- Cloudflare
- Dnsimple
- DnsMadeEasy
- Gandi
- Porkbun
See the DNS providers matrix for more details.
§Installation
Add this to your Cargo.toml:
[dependencies]
zone-update = "0.1.0"§Usage
§Basic Example
use zone_update::{gandi, DnsProvider, errors::Result};
use std::net::Ipv4Addr;
fn update_gandi_record() -> Result<()> {
let config = zone_update::Config {
domain: "example.com".to_string(),
dry_run: false,
};
let auth = gandi::Auth::ApiKey("your-api-key".to_string());
let client = gandi::Gandi::new(config, auth);
let host = "www";
let new_ip = Ipv4Addr::new(192, 0, 2, 1);
// Update the A record for www.example.com
client.update_a_record(host, &new_ip)?;
Ok(())
}See the examples directory for other use-cases.
§Contributing
At this point the most useful contributions would be to add additional DNS provider APIs. However other contributions are welcome.
§AI Contribution Policy
LLM and related ‘AI’ technologies can be useful for software development, but best-practices on their usage are still evolving. For this reason this project will not accept runtime code generated by AI. Generation of draft documentation and test code is acceptable, but should be reviewed by the submitter before raising a PR.
§License
This project is licensed under either of:
- Apache License, Version 2.0 (LICENSE-APACHE)
- MIT license (LICENSE-MIT)
at your option.
Modules§
Macros§
- generate_
helpers - A macro to generate default helper implementations for provider impls.
Structs§
- Config
- Configuration for DNS operations.
Enums§
- Provider
- DNS provider selection used by this crate.
- Record
Type
Traits§
- DnsProvider
- A trait for a DNS provider.