2个版本

0.1.1 2021年2月15日
0.1.0 2021年2月14日

#13 in #crates-io

每月21次下载
用于 cns

MIT 许可证

37KB
728

圣洁

小巧但高效的crates.io API客户端。

该库的主要目标是提供一种简单的方式来查询crates信息,而不需要引入太多的依赖。

该库松散地模仿了crates_io_api 库。主要区别包括

  • 减少了大约70%的依赖数量
  • 没有异步支持
  • 没有多请求客户端方法,如 full_crateall_crates
  • 能够使用 categorykeyword 修饰符来查询crates
  • 能够将简单的字符串组合查询,例如 api category=web keyword=crates sort=update 转换为有效的查询对象

使用方法

将以下内容粘贴到您的项目的 Cargo.toml 文件中

consecrates = "0.1.1"

创建一个新的客户端并发送查询

let client = Client::new("my_app (github.com/me/me_app)");
let crates = client
    .get_crates(Query {
        string: Some("net".to_string()),
        category: Some(Category::GameDevelopment),
        sort: Some(Sorting::RecentUpdates),
        ..Default::default()
    })
    .expect("failed getting crates");
println!("{:?}", crates);

爬虫策略

在开始使用此库之前,请咨询官方爬虫策略。速率限制设置为最低可接受的值。创建客户端时,您需要输入适当的用户代理字符串。

依赖项

~12MB
~311K SLoC