dns-update
dns-update is an Dynamic DNS update library for Rust that supports updating DNS records using the RFC 2136 protocol and over 70 cloud, registrar, and self-hosted DNS provider APIs. It was designed to be simple and easy to use, while providing a high level of flexibility and performance.
Supported providers
| Provider | Constructor | Notes |
|---|---|---|
| RFC 2136 | new_rfc2136_tsig |
TSIG authentication |
| Alibaba Cloud DNS | new_alidns |
ACS3-HMAC-SHA256 |
| ArvanCloud | new_arvancloud |
|
| AutoDNS | new_autodns |
InterNetX |
| Azure DNS | new_azuredns |
OAuth2 client credentials |
| Baidu Cloud DNS | new_baiducloud |
BCE-Auth-V1 |
| BlueCat Address Manager v2 | new_bluecatv2 |
OAuth |
| Bunny DNS | new_bunny |
|
| Cloudflare | new_cloudflare |
API token or X-Auth-* |
| ClouDNS | new_cloudns |
|
| Constellix | new_constellix |
HMAC-SHA1 |
| cPanel | new_cpanel |
UAPI, API token |
| DDNSS.de | new_ddnss |
TXT only |
| deSEC | new_desec |
|
| DigitalOcean | new_digitalocean |
|
| DNSimple | new_dnsimple |
|
| DNS Made Easy | new_dnsmadeeasy |
HMAC-SHA1 |
| Domeneshop | new_domeneshop |
|
| DreamHost | new_dreamhost |
|
| DuckDNS | new_duckdns |
TXT only |
| Dynu | new_dynu |
|
| EasyDNS | new_easydns |
|
| Akamai Edge DNS | new_edgedns |
EG1-HMAC-SHA256 |
| Exoscale | new_exoscale |
EXO2-HMAC-SHA256 |
| FreeMyIP | new_freemyip |
TXT only |
| Gandi v5 | new_gandiv5 |
LiveDNS |
| Gcore | new_gcore |
|
| GleSYS | new_glesys |
|
| GoDaddy | new_godaddy |
|
| Google Cloud DNS | new_google_cloud_dns |
Service account JWT |
| Hetzner DNS | new_hetzner |
|
| hosting.de | new_hostingde |
|
| Hostinger | new_hostinger |
|
| Huawei Cloud DNS | new_huaweicloud |
SDK-HMAC-SHA256 |
| Hurricane Electric | new_hurricane |
TXT only |
| IBM Cloud (SoftLayer) | new_ibmcloud |
Classic Infrastructure |
| Infoblox NIOS | new_infoblox |
WAPI |
| Infomaniak | new_infomaniak |
|
| INWX | new_inwx |
JSON-RPC |
| IONOS | new_ionos |
|
| IPv64 | new_ipv64 |
TXT only |
| Joker | new_joker |
DMAPI, API key or username/password |
| AWS Lightsail | new_lightsail |
AWS Sigv4 |
| Linode | new_linode |
|
| LuaDNS | new_luadns |
|
| Mythic Beasts | new_mythicbeasts |
OAuth2 |
| Namecheap | new_namecheap |
XML API |
| Name.com | new_namedotcom |
|
| NameSilo | new_namesilo |
XML API |
| netcup | new_netcup |
JSON-RPC, session cache |
| Netlify | new_netlify |
|
| Nifcloud | new_nifcloud |
NIFTY3-HTTPS |
| NS1 | new_ns1 |
|
| Oracle Cloud DNS | new_oraclecloud |
RSA-SHA256 HTTP Signatures |
| OVH | new_ovh |
|
| Plesk | new_plesk |
REST API, X-API-Key |
| Porkbun | new_porkbun |
|
| AWS Route 53 | new_route53 |
AWS Sigv4 |
| ANS SafeDNS | new_safedns |
|
| Scaleway | new_scaleway |
|
| Spaceship | new_spaceship |
|
| Tencent Cloud DNSPod | new_tencentcloud |
TC3-HMAC-SHA256 |
| TransIP | new_transip |
RSA-SHA512 JWT |
| UltraDNS | new_ultradns |
OAuth2 |
| Vercel | new_vercel |
|
| Volcano Engine | new_volcengine |
HMAC-SHA256 |
| Vultr | new_vultr |
|
| Websupport | new_websupport |
HMAC-SHA1 |
| Yandex Cloud DNS | new_yandexcloud |
PS256 JWT |
Usage Example
Using RFC2136 with TSIG:
// Create a new RFC2136 client
let client = new_rfc2136_tsig.unwrap;
// Create a new TXT record
client.create
.await
.unwrap;
// Delete the record
client.delete.await.unwrap;
Using a cloud provider such as Cloudflare:
// Create a new Cloudflare client
let client =
new_cloudflare
.unwrap;
// Create a new TXT record
client.create
.await
.unwrap;
// Delete the record
client.delete.await.unwrap;
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Copyright
Copyright (C) 2020, Stalwart Labs LLC