3个版本

0.1.2 2024年4月18日
0.1.1 2024年4月17日
0.1.0 2024年4月16日

#1215网络编程

Download history • Rust 包仓库 61/week @ 2024-04-26 • Rust 包仓库 127/week @ 2024-05-03 • Rust 包仓库 71/week @ 2024-05-10 • Rust 包仓库 74/week @ 2024-05-17 • Rust 包仓库 50/week @ 2024-05-24 • Rust 包仓库 53/week @ 2024-05-31 • Rust 包仓库 68/week @ 2024-06-07 • Rust 包仓库 64/week @ 2024-06-14 • Rust 包仓库 94/week @ 2024-06-21 • Rust 包仓库 64/week @ 2024-06-28 • Rust 包仓库 71/week @ 2024-07-05 • Rust 包仓库 42/week @ 2024-07-12 • Rust 包仓库 17/week @ 2024-07-19 • Rust 包仓库 71/week @ 2024-07-26 • Rust 包仓库 72/week @ 2024-08-02 • Rust 包仓库 75/week @ 2024-08-09 • Rust 包仓库

每月240次下载

Apache-2.0 OR MIT

36KB
860 代码行

dns-update

crates.io build docs.rs crates.io

dns-update 是一个用于Rust的 动态DNS更新库,支持使用 RFC 2136 协议和诸如 Cloudflare 之类的不同云提供商API更新DNS记录。它旨在简单易用,同时提供高灵活性和性能。

限制

  • 目前库仅支持异步操作。
  • 除了RFC 2136之外,它仅支持Cloudflare的API。

欢迎Pull Request

欢迎添加更多提供商的Pull Request。目标是支持尽可能多的提供商,类似于Go的 lego 库。

使用示例

使用RFC2136与TSIG

        // Create a new RFC2136 client
        let client = Rfc2136Provider::new_tsig("tcp://127.0.0.1:53", "<KEY_NAME>", STANDARD.decode("<TSIG_KEY>").unwrap(), TsigAlgorithm::HmacSha512).unwrap();

        // Create a new TXT record
        c.create(
            "test._domainkey.example.org",
            DnsRecord::TXT {
                content: "v=DKIM1; k=rsa; h=sha256; p=test".to_string(),
            },
            300,
            "example.org",
        )
        .await
        .unwrap();

        // Delete the record
        c.delete("test._domainkey.example.org", "example.org").await.unwrap();

使用Cloudflare的API

        // Create a new Cloudflare client
        let client =
            DnsUpdater::new_cloudflare("<API_TOKEN>", None::<String>)
                .unwrap();

        // Create a new TXT record
        c.create(
            "test._domainkey.example.org",
            DnsRecord::TXT {
                content: "v=DKIM1; k=rsa; h=sha256; p=test".to_string(),
            },
            300,
            "example.org",
        )
        .await
        .unwrap();

        // Delete the record
        c.delete("test._domainkey.example.org", "example.org").await.unwrap();

许可证

根据您的选择许可

版权(C)2020-2024,Stalwart Labs Ltd.

依赖关系

~16–28MB
~530K SLoC