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 次
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