#information #io #metadata #access #null

krate

获取已发布 Rust 包的信息和元数据

6 个版本 (1 个稳定版本)

1.0.0 2023年2月3日
0.4.1 2023年2月1日
0.4.0 2023年1月30日
0.3.0 2023年1月29日
0.1.0 2023年1月29日

#null 中排名 15

每月下载 30

MIT 许可证

13KB
271 行(不含注释)

krate 📦

异步获取 Crates.io 上发布的 Rust 包的信息和元数据!

krate 还提供了一个 struct Krate 结构体,其中包含 Crates.io API/V1 合同的部分实现数据模型。

注意:目前没有公开文档化的 Crates.io API/V1 合同,因此通过 API 传递的任何更改或 null 值都可能导致序列化失败。🤷‍♂️

如果您计划使用此库爬取或访问包数据,请参阅 Crates.io 的爬虫策略

用法

$>cargo add krate

main.rs

use krate::KrateClientBuilder;

#[tokio::main]
async fn main() {
    // Create a KrateClient
    let client = KrateClientBuilder::new("My User Agent Tool")
        .build_async()
        .unwrap();
    
    match client.get_async("serde").await {
        Ok(serde_crate) => {
            println!("Krate: {}", serde_crate.krate.name);
            println!("Latest Version: {}", serde_crate.get_latest());
            println!("Description: {}", serde_crate.krate.description );
        },
        Err(e) => println!("Error: {e}"),
    }    
}

这是一个非常简单的实现!对于更健壮的客户端,请参阅 @TheDuke 的 crates-io-api

依赖项

~4–18MB
~236K SLoC