21 个版本

0.6.5 2024年8月14日
0.6.3 2023年10月13日
0.5.2 2023年7月30日
0.4.2 2022年9月27日
0.3.1-beta2020年10月27日

#79电子邮件

Download history 71/week @ 2024-07-29 249/week @ 2024-08-12

每月320 次下载

MIT 许可证

285KB
6.5K SLoC

Twistrs 是一个基于异步 Rust 的域名排列和枚举库。

该库旨在快速、模块化且易于客户端使用。

要查看的两个主要结构体是 DomainDomainMetadata

此外,排列枚举 的模块文档提供了更详细的关于如何独立使用每个模块的细节。

异步进行域名排列和丰富。

示例

以下是一个使用 Tokio mpsc 的简单示例。

use twistrs::enrich::DomainMetadata;
use twistrs::permutate::Domain;

use tokio::sync::mpsc;


#[tokio::main]
async fn main() {
    let domain = Domain::new("google.com").unwrap();
    let permutations = domain.addition();

    let (tx, mut rx) = mpsc::channel(1000);

    for permutation in permutations {
        let domain_metadata = DomainMetadata::new(permutation.domain.fqdn.clone());
        let mut tx = tx.clone();

        tokio::spawn(async move {
            if let Err(_) = tx.send((permutation.clone(), domain_metadata.dns_resolvable().await)).await {
                println!("received dropped");
                return;
            }

            drop(tx);
        });
    }

    drop(tx);

    while let Some(i) = rx.recv().await {
        println!("{:?}", i);
    }
}

依赖项

~10–21MB
~352K SLoC