Expand description
§ddragon
Rust library for accessing the latest League of Legends patch’s ddragon data.
- Fully (de)serializable, well-typed structs
- Supports TFT data
- Provides a synchronous API by default
- Local caching via
cacache - Accepts custom
ureqagents (which can use the exposed cache middleware)
- Local caching via
- Optionally, an asynchronous API can be used that maintains the same featureset
- Local caching is handled by
http-cache-reqwestrather than a custom middleware - Also accepts custom
reqwestorreqwest-middlewareclients
- Local caching is handled by
- Optionally, some useful functions to fetch and decode images, via
image - Optionally, minimal support of cdragon data
§Usage
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::Agent::config_builder()
.middleware(CacheMiddleware::new("/path/to/your/cache/dir"))
.build()
.into();
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(())
}§Features
The following crate features are available:
-
sync(on by default) enables the synchronous client.- Provides the
ddragon::clientandddragon::cache_middlewaremodule. - Provides the re-exported
ddragon::Clientandddragon::ClientBuilderimpls. - Adds
cacache,url,thiserror, andureqwith thejsonfeature enabled as dependencies.
- Provides the
-
asyncenables the asynchronous client.- Provides the
ddragon::async_clientmodule. - Provides the re-exported
ddragon::AsyncClientandddragon::AsyncClientBuilderimpls. - Adds
reqwestwith thejsonfeature,reqwest-middlewareandhttp-cache-reqwestas dependencies. - If you would like the client to use
rustls, use theasync-rustlsfeature instead.
- Provides the
-
imageenables image fetching and caching.- Both clients will receive
image_ofandsprite_offor any model which implementsHasImage. - Adds the
imagedependency.
- Both clients will receive
-
cdragonenables support for sourcing data from CommunityDragon.- At the moment, this just adds a method for fetching Arena mode augments.
-
To use the library with just the synchronous version, it should be as simple as adding any other dependency:
[dependencies]
ddragon = "<version>"- If you would also like to have the image fetching support, use:
[dependencies]
ddragon = { version = "<version>", features = ["image"] }- If you want the asynchronous client only, you probably don’t want to pull in the dependencies related to the synchronous code, so you can do this:
[dependencies]
ddragon = { version = "<version>", default-features = false, features = ["async"] }- If you want the async client and you want to use
rustls(and you wantddragonto generate the client), you can use:
[dependencies]
ddragon = { version = "<version>", default-features = false, features = ["async-rustls"] }Note that if you are providing your own client (via AsyncClientBuilder::new().agent()) you can use either async feature set.
- If you only want the DDragon models (none of the client code), you can use
[dependencies]
ddragon = { version = "<version>", default-features = false }§MSRV
Currently, this crate support Rust >= 1.71.1.
Re-exports§
pub use client::Client;syncpub use client::ClientBuilder;syncpub use async_client::AsyncClient;asyncorasync-rustlspub use async_client::AsyncClientBuilder;asyncorasync-rustls
Modules§
- async_
client asyncorasync-rustls - Contains the async version of the client API.
- cache_
middleware sync - Contains the local file caching middleware used for
ureq. - client
sync - Contains the sync version of the client API.
- models
- Contains the structs that can be returned by the client API.
Enums§
- Client
Error syncorasync-base - Any potential error the client may run into during operation.