#league-of-legends #tft #lol #api-bindings #teamfight-tactics

ddragon

用于从 ddragon 获取数据,支持缓存

15 个不稳定版本

0.8.2 2024 年 4 月 5 日
0.8.1 2023 年 10 月 31 日
0.7.4 2023 年 7 月 28 日
0.7.1 2023 年 3 月 17 日

#1 in #lol

Download history 29/week @ 2024-04-26 33/week @ 2024-05-03 24/week @ 2024-05-10 69/week @ 2024-05-17 33/week @ 2024-05-24 14/week @ 2024-05-31 15/week @ 2024-06-07 22/week @ 2024-06-14 41/week @ 2024-06-21 18/week @ 2024-06-28 37/week @ 2024-07-05 25/week @ 2024-07-12 11/week @ 2024-07-19 26/week @ 2024-07-26 63/week @ 2024-08-02 33/week @ 2024-08-09

135 每月下载量
用于 2 crates

MIT 许可证

74KB
1.5K SLoC

ddragon

latest version health check status downloads of latest version latest docs

Rust 库,用于访问最新《英雄联盟》补丁的 ddragon 数据。

  • 完全(反)序列化,良好类型化的结构体
  • 支持 TFT 数据
  • 默认提供同步 API
    • 通过 cacache 进行本地缓存
    • 接受自定义 ureq 代理(可以使用公开的缓存中间件)
  • 可选,可以使用保持相同功能集的异步 API
    • 本地缓存由 http-cache-reqwest 处理,而不是自定义中间件
    • 也接受自定义 reqwestreqwest-middleware 客户端
  • 可选,提供一些有用的函数来获取和缓存图像,通过 image

用法

use ddragon::{cache_middleware::CacheMiddleware, Client, ClientBuilder, ClientError};

fn main() -> Result<(), ClientError> {
    let client = Client::new("/path/to/your/cache/dir")?;

    // If you want to use an existing agent
    let my_agent = ureq::AgentBuilder::new()
        .middleware(CacheMiddleware::new("/path/to/your/cache/dir"))
        .build();
    let client = ClientBuilder::new().agent(my_agent).build()?;

    // See available options on the client and in the models folder.
    let champions = client.champions()?;
    let runes = client.runes()?;
    let tft_items = client.tft_items()?;

    Ok(())
}

特性

以下 crate 特性可用

  • sync(默认开启)启用同步客户端。

    • 提供 ddragon::clientddragon::cache_middleware 模块。
    • 提供重新导出的 ddragon::Clientddragon::ClientBuilder 实现。
    • 添加 cacacheurlthiserrorureq 作为依赖,并启用 json 功能。
  • async 启用异步客户端。

    • 提供 ddragon::async_client 模块。
    • 提供重新导出的 ddragon::AsyncClientddragon::AsyncClientBuilder 实现。
    • 添加 reqwest(启用 json 功能)、reqwest-middlewarehttp-cache-reqwest 作为依赖。
    • 如果想要客户端使用 rustls,则使用 async-rustls 功能。
  • image 启用图像获取和缓存。

    • 两个客户端都将接收到任何实现了HasImage模型的image_ofsprite_of
    • 添加了image依赖。
  • 要仅使用同步版本的库,它应该像添加任何其他依赖一样简单

[dependencies]
ddragon = "<version>"
  • 如果您还需要图像抓取支持,请使用
[dependencies]
ddragon = { version = "<version>", features = ["image"] }
  • 如果您只想使用异步客户端,可能不想引入与同步代码相关的依赖项,因此可以这样做
[dependencies]
ddragon = { version = "<version>", default-features = false, features = ["async"] }
  • 如果您想要异步客户端并且想要使用rustls(并且想要ddragon生成客户端),可以使用
[dependencies]
ddragon = { version = "<version>", default-features = false, features = ["async-rustls"] }

请注意,如果您通过AsyncClientBuilder::new().agent()提供自己的客户端,您可以使用async功能集。

  • 如果您只想使用DDragon模型(没有客户端代码),可以使用
[dependencies]
ddragon = { version = "<version>", default-features = false }

MSRV

目前,此crate支持Rust >= 1.67.1。

依赖项

~0.3–34MB
~554K SLoC