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
135 每月下载量
用于 2 crates
74KB
1.5K SLoC
ddragon
Rust 库,用于访问最新《英雄联盟》补丁的 ddragon 数据。
- 完全(反)序列化,良好类型化的结构体
- 支持 TFT 数据
- 默认提供同步 API
- 通过
cacache
进行本地缓存 - 接受自定义
ureq
代理(可以使用公开的缓存中间件)
- 通过
- 可选,可以使用保持相同功能集的异步 API
- 本地缓存由
http-cache-reqwest
处理,而不是自定义中间件 - 也接受自定义
reqwest
或reqwest-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::client
和ddragon::cache_middleware
模块。 - 提供重新导出的
ddragon::Client
和ddragon::ClientBuilder
实现。 - 添加
cacache
、url
、thiserror
和ureq
作为依赖,并启用json
功能。
- 提供
-
async
启用异步客户端。- 提供
ddragon::async_client
模块。 - 提供重新导出的
ddragon::AsyncClient
和ddragon::AsyncClientBuilder
实现。 - 添加
reqwest
(启用json
功能)、reqwest-middleware
和http-cache-reqwest
作为依赖。 - 如果想要客户端使用
rustls
,则使用async-rustls
功能。
- 提供
-
image
启用图像获取和缓存。- 两个客户端都将接收到任何实现了
HasImage
模型的image_of
和sprite_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