libdns

Crates.iolibdns
lib.rslibdns
version0.1.1
sourcesrc
created_at2024-04-04 20:08:11.047623
updated_at2024-04-06 14:28:19.599517
descriptionAbstracting and implementing DNS zone management for different providers
homepage
repositoryhttps://github.com/lus/libdns-rs
max_upload_size
id1196685
size37,721
Lukas Schulte Pelkum (lus)

documentation

README

libdns-rs

crates.io Docs Build and check

This project is a rip-off of libdns written in Rust. It defines an abstract API for managing DNS zones and implements it for several widely-used providers.

[!NOTE] This project is my very first (serious) attempt at learning Rust. I am more than thankful for any suggestions and tips on this matter, so please feel welcomed to bring them up in an issue :)

Using

To add libdns to your project, an entry like the following would be enough to include only the abstract DNS zone management traits:

[dependencies]
libdns = { version = "0" }

Including provider implementations

If you need one or more concrete provider implementations as well, you can simply add their corresponding feature flags to the dependency's features field:

Provider Feature Flag
Hetzner hetzner

Choosing TLS backend

The provider implementations use reqwest for communicating with their APIs whenever possible. By default, the default-tls feature is enabled for reqwest. These features can be given instead for choosing a different TLS backend (remember to disable the default features):

  • default-tls (default)
  • rustls-tls
  • native-tls
  • native-tls-vendor

Please refer to reqwests docs for an overview on what TLS backend does what.

Contributing

I am grateful for any contribution to this project, so feel free to request, add or fix provider implementations when neccessary.

Commit count: 22

cargo fmt